이증 원형 연결리스트에서 노드를 삽입&삭제하는 알고리즘
1
2
3
4
5
6
7
8
insertNode(DL, pre, x)
new <- getNode();
new.data <- x;
new.rlink <- pre.rlink;
pre.rlink <- new;
new.llink <- pre;
new.rlink.llink <- new;
end insertNode()
이중 연결 리스트에서의 삽입 알고리즘
new.rlink ← pre.rlink
: 노드pre
의rlink
값을 노드new
의rlink
에 저장한다. 즉, 노드pre
의 오른쪽 노드(pre
다음 노드의llink
)를 삽입할 노드new
의 오른쪽 노드로 연결한다.pre.rlink ← new
: 새 노드new
의 참조값을 노드pre
의rlink
에 저장한다. 즉, 노드new
를 노드pre
의 오른쪽 노드로 연결한다.new.llink ← pre
: 참조변수 pre의 값을 삽입할 노드 new의 llink에 저장한다. 즉, 노드pre
를 노드new
의 왼쪽 노드로 연결한다new.rlink.link ← new
:new
의 값을 노드new
의 오른쪽 노드(new.rlink
)의llink
에 저장한다. 즉, 노드new
의 오른쪽 노드의 왼쪽 노드로 노드new
를 연결한다.