#include <stdio.h>
#include <stdlib.h>
typedef struct Test{
int data;
struct Test* next; //다음노드의 주소
struct Test* prev; //이전 노드의 주소
}test;
void main() {
test* head = (test*)malloc(sizeof(test));
test* tail = (test*)malloc(sizeof(test));
head->next = tail;
tail->prev = head;
test* newnode1 = (test*)malloc(sizeof(test));
newnode1->next = tail;
tail->prev = newnode1;
head->next = newnode1;
newnode1->prev = head;
test* newnode2 = (test*)malloc(sizeof(test));
newnode2->next = tail;
tail->prev = newnode2;
newnode1->next = newnode2;
newnode2->prev = newnode1;
test* newnode3 = (test*)malloc(sizeof(test));
newnode3->next = tail;
tail->prev = newnode3;
newnode2->next = newnode3;
newnode3->prev = newnode2;
newnode1->data = 10;
newnode2->data = 20;
newnode3->data = 30;
test* move = head->next;
test* move2 = tail->prev;
while (move != tail) {
printf("%d", move->data);
move = move->next;
}printf("\n"); // 출력
while (move2 != head) {
printf("%d", move2->data);
move2 = move2->prev;
} printf("\n");
}
========================================================================
//함수 이용하기
#include <stdio.h>
#include <stdlib.h>
typedef struct Test{
int data;
struct Test* next; //다음노드의 주소
struct Test* prev; //이전 노드의 주소
}test;
void input(test* head, int a) {
test* newnode = (test*)malloc(sizeof(test));
newnode->next = head->next;
head->next->prev = newnode;
head->next = newnode;
newnode->prev = head;
newnode->data = a;
}
void del_Node(test* head, test* tail, int b) {
test* move = head->next;
while (move != tail) {
if (move->data == b) {
move = move->next;
move->next->next->prev = move->next->prev;
free(move);
break;
}
}
}
void main() {
int del;
test* head = (test*)malloc(sizeof(test));
test* tail = (test*)malloc(sizeof(test));
head->next = tail;
tail->prev = head;
input(head, 10);
input(head, 20);
input(head, 30);
input(head, 40);
input(head, 50);
printf("입력\n");
scanf("%d", &del);
del_Node(head, tail, del);
test* move = head->next;
while (move != tail) {
printf("%d ", move->data);
move = move->next;
}printf("\n");
}
댓글 없음:
댓글 쓰기