[15] C review < 이중연결리스트 > 과제 수정 필요Language/자료구조2021. 11. 29. 11:49
Table of Contents
단방향 연결 리스트(single linked list)의 한계
- 어떤 노드의 앞에 새로운 노드를 삽입하기 어려움
- 삭제의 경우에 항상 삭제할 노드의 앞 노드가 필요
- 단방향의 순회만이 가능
이중 연결 리스트
- 각각의 노드가 다음(next)노드와 이전(previous)노드의 주소를 가지는 연결 리스트
- 양방향의 순회(traverse)가 가능.
각 노드에 하나의 문자열이 저장된다고 가정하자.
#include<stdio.h>
#include<stdlib.h>
struct node
{
char *data;
struct node next;
struct node prev;
};
typedef struct node Node;
Node *head;
Node *tail;
int size = 0;
노드를 삽입하는 경우를 알아봅시다. 이 과정은 순서가 매우 중요합니다.
삭제할때는 해당노드에 바로 접근하여 삭제하면 됩니다.
< 추가할때 여려 경우의 수 >
1. 비어있는 리스트에서 처음 노드 삽입하기
2. 맨 앞에 노드 삽입하기
3. 맨 끝에 노드 삽입하기
4. 중간에 노드 삽입하기
< 삭제할때 여려 경우의 수 > 과제.
1. p가 유일한 노드인 경우
2. p가 head인 경우
3. p가 tail인 경우
4. 그밖의 일반적인 경우
< 정렬된 상태에서의 추가 >
'Language > 자료구조' 카테고리의 다른 글
Stack의 개념과 구현 (0) | 2021.12.06 |
---|---|
[16] C review < 이중연결리스트 Music Library Program 기본동작들 > (0) | 2021.11.29 |
[14] C review < 연결리스트 - 다항식 > (0) | 2021.11.27 |
[13] C review < 연결리스트의 순회 > (0) | 2021.11.26 |
[12] C review < 연결리스트의 제거 > (0) | 2021.11.26 |
@Return :: Return
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!