학교/자료구조

5. 이중 연결리스트

daykim 2022. 3. 14. 06:44

이중 연결리스트

각 노드가 선행노드와 후속 노드에 대한 링크를 가지는 리스트

노드의 왼쪽링크와 오른쪽 링크를 가지고 헤드노드를 가진다.

 

노드 구조

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);
}