-
이중 연결 리스트
이중 연결 리스트는 이전 노드의 주소와 다음 노드의 주소를 모두 관리한다.
- 삽입(Insert) 연산
기존 노드의 다음을 삽입 노드가 가리키고 기존 노드의 다음은 삽입 노드를 가리키도록 하고 다음 노드의 이전을 삽입 노드가 가리키고 다음 노드의 이전은 삽입 노드를 가리키도록 한다.
* 원본 데이터
리스트 끝에 노드를 삽입하는 경우 리스트의 마지막 노드의 다음이 삽입 노드를 가리키고 삽입 노드의 이전이 마지막 노드를 가리키도록 만들어준다.
※ 리스트 앞에 노드를 삽입하는 경우 삽입 노드의 다음이 처음 노드를 가리키고 처음 노드의 이전이 삽입 노드를 가리키도록 만들어주면 된다.
리스트 중간에 노드를 삽입하는 경우 리스트 앞에 노드를 삽입할 때의 작업과 리스트 뒤에 노드를 삽입할 때의 작업을 모두 진행해야 한다.
- 삭제(Delete) 연산
삭제할 노드의 이전을 다음 노드의 이전이 가리키도록 하고 삭제할 노드의 다음을 이전 노드의 다음이 가리키도록 한다.
리스트 끝에서 노드를 삭제하는 경우 마지막 노드가 아무것도 가리키지 않도록 만들고 이전 노드의 다음이 아무것도 가리키지 않도록 만들어준다.
※ 리스트 앞에서 노드를 삭제하는 경우 처음 노드가 아무것도 가리키지 않도록 만들고 다음 노드의 이전이 아무것도 가리키지 않도록 만들어주면 된다.
리스트 중간에서 노드를 삭제하는 경우 리스트 앞에서 노드를 삭제할 때의 작업과 리스트 뒤에서 노드를 삭제할 때의 작업을 모두 진행해야 한다.