반응형
SMALL
연결 리스트에서 노드의 삽입과 삭제
연결 리스트의 마지막에 삽입 연산(1-1)
void addNode(linkedList_h* H, int x) {
//리스트 마지막 노드에 삽입 연산하며, x값은 100이라고 가정함
listNode* NewNode;
listNode* LastNode;
NewNode = (listNode*)malloc(sizeof(listNode));
NewNode → data = x;
NewNode → link = NULL;
- NewNode의 생성
연결 리스트의 마지막에 삽입 연산(1-2)
voidaddNode(linkedList_h*H,intx){
if( H->head == NULL) { // 현재 리스트가 공백인 경우
H -> head -> NewNode;
return;
}
LastNode = H -> head;
while(LastNode → link != NULL)
LastNode = LastNode → link;
LastNode → link = NewNode; }
- 삽입 그림 : 현재 리스트가 공백인 경우 (교재 112p,113p)
연결 리스트의 마지막에 삽입 연산(1-2)
voidaddNode(linkedList_h*H,intx){
if( H->head == NULL) { // 현재 리스트가 공백인 경우
H -> head -> NewNode;
return;
}
LastNode = H -> head;
while(LastNode → link != NULL)
LastNode = LastNode → link;
LastNode → link = NewNode; }
- 삽입 그림 : 현재 리스트가 공백이 아닌 경우
리스트의 특정 노드 다음에 삽입 연산(2-1)
voidadditNode(linkedList_h*H, listNode*prevNode, intitdata)
{
//리스트 마지막 노드에 삽입 연산하며,itdata값은 150이라고 가정함
listNode*NewNode;
NewNode = (listNode*)malloc(sizeof(listNode));
NewNode → data = itdata;
NewNode → link = NULL;
- 리스트의 특정 노드 다음에 삽입 연산
( 삽입 그림 :125페이지,126페이지 그림 )
- prevNode가 NewNode를 먼저 가리킨 모습
리스트의 특정 노드 다음에 삽입 연산(2-1)
voidadditNode(linkedList_h*H, listNode*prevNode, intitdata){
NewNode → link = prevNode → link;
prevNode → link = NewNode;
return;
}
- NewNode의 링크 필드 값이 변경된 모습
- prevNode의 링크 필드 값이 변경된 모습
반응형
LIST
'방송통신대학 > 자료구조' 카테고리의 다른 글
6-1 연결리스트의 응용 (0) | 2020.11.29 |
---|---|
B-Tree , B* Tree , B+ Tree 설명, 비교 (0) | 2020.11.25 |
5-2. 포인터를 이용한 리스트의 구현 (0) | 2020.11.24 |
5-1 연결리스트 (0) | 2020.11.23 |
배열을 이용한 큐queue 의 구현 (0) | 2020.09.17 |