본문 바로가기
자료구조

[자료구조] 단순 연결 리스트의 삽입과 삭제

by 김아잉 2024. 6. 13.
728x90

• 자료삽입

 (1) 먼저 새로운 노드(B)를 생성하여 노드의 데이터 영역에 자료를 저장

 (2) 새로 생성된 노드(B)의 포인터 영역이 후속 노드(C)를 가리키게 함

 (3) 선행 노드(A)의 포인터 영역이 새로 생성된 노드(B)를 가리키게 함

 (4) 이전 노드(A)아 후속 노드(C) 사이에 새로운 노드(B)가 삽입됨

 

• 자료삭제

 (1) 먼저 삭제하고자 하는 노드(B)의 이전 노드(A) 포인터 영역이 삭제하고자 하는

       (B)의 바로 다음 노드(C)를 가리키게 함

 (2) 선행 노드(A)의 포인터 영역이 삭제할 노드(B)의 후속 노드(C)와 연결됨

 (3) 노드(B)의 삭제가 완료됨

 

문제)

1) D와 n 사이에 newNode(주소:2)인 값 a를 삽입하고자 할 때,

   포인터 영역(next)의 변화 과정을 한글과 코드로 기술하시오.

 

풀이보기

더보기

(0) curNode의 현 위치는 D

(1) newNode -> next의 주소를 curNode -> next의 주소 60으로 할당

(2) curNode -> next를 newNode의 주소 2로 할당

 

newNode->next=curNode->next;

curNode->next=newNode;

 

2) 단순 연결 리스트가장 마지막 노드 뒤에 newNode(값: k)를

    추가하고자 할 때, 빈칸에 들어갈 코드는?

while(curNode->next!=NULL){
	_____________;
}

_____________;

 

풀이보기

더보기
while(curNode->next!=NULL){
	curNode=curNode->next;
}

curNode->next=newNode;
728x90

'자료구조' 카테고리의 다른 글

[자료구조] 이중 연결 리스트  (0) 2024.06.20
[자료구조] 단순 연결 리스트  (0) 2024.06.12
[자료구조] 리스트  (0) 2024.06.12
[자료구조] 원형 큐(Circular Queue)  (0) 2024.05.30
[자료구조] 큐(Queue)  (0) 2024.04.18

댓글