이중 연결리스트
각 노드가 선행노드와 후속 노드에 대한 링크를 가지는 리스트
노드의 왼쪽링크와 오른쪽 링크를 가지고 헤드노드를 가진다.
노드 구조
typedef struct node *nodepoint;
typedef struct node
{
nodepoint llink;
int data;
nodepoint rlink;
}
노드 삽입
void dinsert(nodepoint node, nodepoint newnode)
{
newnode -> llink = node;
newnode -> rlintk = node -> link;
node -> rlink -> llink = newnode;
node -> rlink = newnode;
}
노드 삭제
void ddelete(nodepoint node, nodepoint deleted)
{
deleted -> llink -> rlink = deleted -> rlink;
deleted -> rlink -> llink = deleted -> llink;
free(deleted);
}