Doubly Linked List는 양쪽 방향으로 순회할 수 있도록 노드를 연결한 리스트이다. linked list에서와 마찬가지로 중간노드, 첫번째 노드, 마지막 노드 삽입을 나누어서 보도록 하겠다.
[같이 보면 좋은 자료: linked list에서의 삽입]
1) 중간 노드로 삽입
- 삽입할 노드를 먼저 준비한다.
- 새 노드의 데이터 필드에 값을 저장한다.
- 새 노드 왼쪽 노드(pre)의 rlink 필드에 있던 값을 새 노드의 rlink 필드에 저장한다.
- 왼쪽 노드의 rlink 필드에 새 노드의 주소를 저장한다.
- 새 노드의 llink 필드에 왼쪽 노드(pre)의 주소를 저장한다.
- 오른쪽 노드의 llink 필드에 새 노드의 주소를 저장한다.
2) 첫 번째 노드로 삽입
- 삽입할 노드를 먼저 준비한다.
- 새 노드의 데이터 필드에 값을 저장한다.
- 새 노드의 왼쪽 노드가 없으므로 새 노드의 llink 필드에 NULL을 저장한다.
- head가 가리키고 있던 첫 번째 노드의 주소값을 새 노드의 rlink 필드에 저장한다.
- 첫 번째 노드였던 노드의 llink 필드에 새 노드의 주소값을 저장한다.
- head에 새 노드를 연결한다.
3) 마지막 노드로 삽입
- 삽입할 노드를 준비한다.
- 새 노드의 데이터 필드에 값을 저장
- 새 노드의 오른쪽 노드가 없으므로 새 노드의 rlink 필드에 NULL을 저장한다.
- 마지막 노드를 검색한다.
- 새 노드의 llink 필드에 마지막 노드의 주소값을 저장한다.
- 마지막 노드의 rlink 필드에 새 노드의 주소값을 저장한다.
'Computer Science' 카테고리의 다른 글
[자료구조] Doubly Linked List의 삭제 (0) | 2024.02.02 |
---|---|
[데이터베이스] Natural Join의 위험성에 관하여(Natural Join은 왜 위험할까?) (0) | 2024.02.02 |
[자료구조] Linked List- 삭제 (0) | 2024.01.31 |
[자료구조] Linked List - 삽입(중간 노드, 첫번째 노드,마지막 노드로 삽입) (0) | 2024.01.30 |
[자료구조] Linked Lists- Search (0) | 2024.01.29 |