다중 연결 리스트 (Multi-Linked list)

1. 다중 포인터, 다중 연결 리스트 (Multi-Linked list)

  • 양방향 및 다중 방향 검색이 가능하도록 선행 노드 포인터 크기를 유연하게 변경 가능한 연결 리스트

 

2. 다중 연결 리스트의 구성도 및 삽입/삭제 기법

(1) 다중 연결 리스트의 구성도

  • 연결 노드 간 양방향 탐색을 통해 검색속도 향상 가능

(2) 다중 연결 리스트의 노드 삽입/삭제 기법

구분구성도설명

삽입

연산

다중 연결 리스트 삽입 연산

– 선행노드 Next → 삽입노드

– 후속노드 Prev → 삽입노드

삭제

연산

다중 연결 리스트 삭제 연산

– 제거노드 Prev

→ 후속노드 Prev

– 제거노드 Next

→ 선행노드 Next

  • 다중 연결 리스트는 트리 순회 등 검색/삽입/삭제 연산에 효율적이지만 단순 연결 리스트에 비해 구현 어려움

 

3. 다중 연결 리스트의 구현 소스코드 사례

typedef struct node // 노드 자료구조 선언

{

vector(struct node *) pointers;

// 하나의 노드에 다중 포인터 선언

void* data; // 노드의 데이터 구조

} node;

 

[참고]

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^