Computer Science/자료구조 & 알고리즘

[알고리즘 과제] 연결 리스트 삽입 및 삭제

2sjin 2022. 10. 3. 15:54
해당 게시글의 소스 코드는 특정 언어가 아닌, 의사 코드(Pseudo Code)로 작성되었습니다.

 


1. 노드 삽입(마지막 부분)

Input: head, node_new(삽입할 노드)

 

if head == NULL:

head -> node_new

 

else:

node_cnext -> node_new

node_newprev -> node_c

tail -> node_new


2. 노드 삽입(중간 부분)

Input: node_a의 위치(삽입할 위치), node_new(삽입할 노드)

 

node_newnext -> node_anext

 

node_newprev -> node_a

 

if node_anext != NULL:

node_anextprev -> node_new

 

node_anext -> node_new


3. 노드 삭제

Input: node_del(삭제할 노드)

 

초기 Double Linked List

- node_delprev -> node_a

- node_delnext -> node_b

 

node_delprev(node_a)next -> node_b

 

node_delnext -> NULL

 

node_delnext(node_b)prev -> node_a

 

node_delprev -> NULL