일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- cors
- 자료구조
- 브라우저
- 자바스크립트
- Machine Learning
- 프로세스
- pytorch
- 스택
- 큐
- 연결 리스트
- 연결리스트
- 해시테이블
- alexnet
- C
- 프로그래머스
- 알고리즘
- 컨테이너
- APOLLO
- 코딩테스트
- RxJS
- 배열
- 포인터
- vue3
- 프론트엔드
- 타입스크립트
- 웹팩
- 이진탐색
- GraphQL
- 릿코드
- RT scheduling
- Today
- Total
목록연결 리스트 (3)
프린세스 다이어리
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) {..
1. 양방향 연결 리스트란 양방향 연결 리스트는 각 노드가 머리(Head)와 꼬리(Tail)를 모두 가지는 특징이 있다. 양방향 연결 리스트의 각 노드는 앞 노드와 뒤 노드의 정보를 모두 저장하고 있다. 다음 그림을 보면 앞 노드는 prev, 뒤 노드는 next로 지칭하고 있다. 양방향 연결 리스트를 이용하면 단방향과 달리 리스트의 앞에서부터 혹은 뒤에서부터 모두 접근할 수 있다. typedef struct Node{ int data; struct Node *prev; struct Node *next; } Node; Node *head, *tail; 2. 연결 리스트 노드 삽입 과정 데이터를 오름차순으로 저장하는 양방향 연결 리스트를 구현해 보자. 노드를 삽입할 때는, 앞쪽 노드의 next가 삽입할 노드..
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++; ..