data가 이중 연결 리스트(doubly linked list)에 다음… | [7급 국가직 자료구조론] 25년 1회차 기출문제 상세 페이지
1[7급 국가직 자료구조론] 25년 1회차
data가 이중 연결 리스트(doubly linked list)에 다음과 같이 구성되어 있을 때, 데이터 A를 삭제한 후 변경된 내용으로 옳은 것은?
| memory address | data | left_link | right_link |
|---|---|---|---|
| 1000 | A | 1020 | 1030 |
| 1010 | B | 1030 | NULL |
| 1020 | C | NULL | 1000 |
| 1030 | D | 1000 | 1010 |
1
B의 right_link → 1030, C의 left_link → 1020
2
B의 right_link → 1030, D의 left_link → 1020
3
C의 right_link → 1020, D의 left_link → 1030
4
C의 right_link → 1030, D의 left_link → 1020
해설
리스트 순서는 C → A → D → B이므로 A를 지우면 C의 right_link는 1030, D의 left_link는 1020으로 바뀐다.
C(1020)의 left_link가 NULL이라 C가 첫 노드이고, 링크를 따라가면 C(1020) ↔ A(1000) ↔ D(1030) ↔ B(1010)이다.
A 삭제: A의 앞 노드 C가 A의 다음 노드 D(1030)를, D가 A의 앞 노드 C(1020)를 가리키게 한다.
- B의 right_link를 1030, C의 left_link를 1020으로 바꾸는 것: B는 A와 이웃하지 않으며 C가 자기 자신을 가리키게 된다.
- B의 right_link를 1030, D의 left_link를 1020으로 바꾸는 것: D 쪽은 맞지만 B는 마지막 노드라 right_link가 NULL로 유지된다.
- C의 right_link를 1020, D의 left_link를 1030으로 바꾸는 것: 두 노드가 각각 자기 자신을 가리키게 된다.
오류나 개정된 내용이 보이면 알려주세요