1. 오늘 학습내용
① 이중 링크드 리스트 (Doubly Linked List)
(1) 구조
- 각 노드가
- prev : 이전 노드 주소
- next : 다음 노드 주소
- 단일 링크드 리스트보다 탐색이 유연
typedef struct Node {
int data;
struct Node* prev;
struct Node* next;
} Node;
(2) 특징
- 양방향 이동 가능
- 삽입·삭제 시 이전 노드 접근이 쉬움
- 대신 포인터 2개 사용 → 메모리 사용 증가
(3) 구현 기능
- 노드 추가 (앞 / 뒤)
- 노드 삭제
- 전체 출력 (정방향 / 역방향)
② 큐 (Queue)
(1) 개념
- FIFO (First In First Out)
- 먼저 들어온 데이터가 먼저 나감
(2) 주요 연산
- enqueue : 데이터 삽입
- dequeue : 데이터 제거
- front : 맨 앞 데이터 확인
(3) 구현 방식
③ 데크 (Deque, Double-Ended Queue)
(1) 개념
- 양쪽에서 삽입·삭제 가능
- 큐 + 스택 기능 포함
(2) 주요 연산
- addFront
- addRear
- removeFront
- removeRear
(3) 특징
2. 헷갈렸던 거
- 단일 링크드 리스트 vs 이중 링크드 리스트 차이
- 노드 삭제 시 prev와 next 연결 순서
- 큐에서 front와 rear 포인터 관리
- 데크와 큐의 구조적 차이
- 메모리 해제 시 실수 가능성
3. 나중에 다시 볼 키워드
- Doubly Linked List
- prev / next 연결 순서
- FIFO
- enqueue / dequeue
- Deque
- front / rear 포인터
- 동적 할당 & free