#include <stdio.h>

#include <stdlib.h>

typedef int element;

typedef struct DListNode { // 이중연결 노드 타입

element data;

struct DListNode* llink;

struct DListNode* rlink;

} DListNode;

// 이중 연결 리스트를 초기화

void init(DListNode* phead)

{

phead->llink = phead;

phead->rlink = phead;

}

void print_dlist(DListNode* phead)

{

DListNode* p;

for (p = phead->rlink; p != phead; p = p->rlink) {

printf("<-| |%d| |-> ", p->data);

}

printf("\n");

}

void dinsert(DListNode *before, element data)

{

DListNode *newnode = (DListNode *)malloc(sizeof(DListNode));

newnode->data = data;

newnode->llink = before;

newnode->rlink = before->rlink;

before->rlink->llink = newnode;

before->rlink = newnode;

}

void ddelete(DListNode* head, DListNode* removed)

{

if (removed == head) return;

removed->llink->rlink = removed->rlink;

removed->rlink->llink = removed->llink;

free(removed);

}

int main(void)

{

DListNode* head = (DListNode *)malloc(sizeof(DListNode));

init(head);

printf("추가 단계\n");

for (int i = 0; i < 5; i++) {

// 헤드 노드의 오른쪽에 삽입

dinsert(head, i);

print_dlist(head);

}

printf("\n삭제 단계\n");

for (int i = 0; i < 5; i++) {

print_dlist(head);

ddelete(head, head->rlink);

}

free(head);

return 0;

}


자료는 그냥 12345 받게 해놨는데 커서 구현해서 123456 이 아니라 123645 이런식으로 값 삽입하고 싶은데 어떻게해야해요??