일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 포인터
- 자바스크립트
- RxJS
- 알고리즘
- 브라우저
- GraphQL
- alexnet
- 이진탐색
- 배열
- APOLLO
- 큐
- 프로그래머스
- 자료구조
- 릿코드
- 코딩테스트
- 타입스크립트
- 해시테이블
- C
- Machine Learning
- 프로세스
- 스택
- 연결리스트
- vue3
- 웹팩
- 프론트엔드
- cors
- RT scheduling
- 연결 리스트
- 컨테이너
- pytorch
- Today
- Total
목록연결 리스트 (3)
프린세스 다이어리
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/KjOIT/btrhX1BT6Xl/Q63zwVLX2VIIZMJUTokrx0/img.png)
1. 연결 리스트, 큐 구조체 만들기 #include #include #define INF 99999999 typedef struct Node { int data; struct Node *next; } Node; typedef struct Queue { Node *front; Node *rear; int count; } Queue; Queue에는 front, rear, 그리고 큐에 들어가 있는 원소들의 개수를 count로 정했다. 2. push 함수 구현하기 큐는 rear가 가리키는 노드 뒤쪽에 들어가기 때문에, 먼저 노드를 뒤에 만들어 놓고 rear의 next가 그 노드를 가리키게 만든 다음에, rear가 그 노드를 가리키도록 하면 된다. void push(Queue *queue, int data) {..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cs4W3N/btrhVsMOfXb/aj5NTDaKfmLn214CirkCt0/img.png)
1. 양방향 연결 리스트란 양방향 연결 리스트는 각 노드가 머리(Head)와 꼬리(Tail)를 모두 가지는 특징이 있다. 양방향 연결 리스트의 각 노드는 앞 노드와 뒤 노드의 정보를 모두 저장하고 있다. 다음 그림을 보면 앞 노드는 prev, 뒤 노드는 next로 지칭하고 있다. 양방향 연결 리스트를 이용하면 단방향과 달리 리스트의 앞에서부터 혹은 뒤에서부터 모두 접근할 수 있다. typedef struct Node{ int data; struct Node *prev; struct Node *next; } Node; Node *head, *tail; 2. 연결 리스트 노드 삽입 과정 데이터를 오름차순으로 저장하는 양방향 연결 리스트를 구현해 보자. 노드를 삽입할 때는, 앞쪽 노드의 next가 삽입할 노드..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/brH7gu/btrhOAkWmGf/YOPWLRmJJBJgmBEC0JzYq1/img.png)
1. 연결 리스트의 장점 일반적으로 배열을 사용하여 데이터를 순차적으로 저장하고, 나열할 수 있다. 하지만 배열을 사용하는 경우, 메모리 공간이 불필요하게 낭비될 수 있다. 연결 리스트를 활용하여 이를 개선할 수 있다. 다음은 연결 리스트가 아닌, 일반적인 배열을 사용하여 특정 원소를 배열의 첫자리에 추가하는 소스다. #include #define INF 10000 int arr[INF]; int count = 0; void addBack(int data) { arr[count] = data; count++; } void addFirst(int data) { for (int i = count; i >= 1; i--) { arr[i] = arr[i - 1]; } arr[0] = data; count++; ..