250x250
반응형
Notice
Recent Posts
Recent Comments
Link
N
(TIL Day03-4)자료구조- 큐 본문
728x90
반응형
큐(Queue)
- First In First Out(FIFO)라는 개념을 가진 선형 자료구조.
- 먼저 들어간 데이터가 먼저 출력된다.
- 식당에서 대기번호 표를 받았을 때를 생각하면 쉽게 이해할 수 있다.
- 큐의 가장 앞에 있는 원소의 인덱스(위치)는 front로 나타내며, 가장 뒤에 있는 원소의 인덱스(위치)는 rear라고 한다.
데이터 추가
- enqueue
- 큐의 가장 마지막에 데이터를 추가한다.
- 데이터를 추가할수록 rear 값이 1 증가한다.
데이터 삭제
- dequeue
- 큐의 맨 앞에 있는 원소(front)가 삭제된다.
- 데이터 삭제를 하면 front 값이 1 증가한다.
코드
JS에서는 큐가 제공되지 않기 때문에 배열 형태로 큐를 구현한다.
class Queue {
constructor() {
this.queue = [];
this.front = 0;
this.rear = 0;
}
enqueue(value) {
this.queue[this.rear++] = value;
}
dequeue() {
const value = this.queue[this.front];
delete this.queue[this.front];
this.front++;
return value;
}
peek() {
return this.queue[this.front];
}
size() {
return this.rear - this.front;
}
}
- peek() 함수는 큐의 가장 앞에 있는 원소 값을 리턴한다.
- size() 함수는 현재 큐의 크기(원소의 개수)를 나타낸다.
728x90
반응형
'TIL' 카테고리의 다른 글
(TIL Day03-6)자료구조- 그래프 (0) | 2021.08.06 |
---|---|
(TIL Day03-05)자료구조- 해시 테이블 (0) | 2021.08.06 |
(TIL Day03-3)자료구조- 스택 (0) | 2021.08.06 |
(TIL Day03-02)자료구조-연결 리스트(2) 양방향 연결 리스트 (0) | 2021.08.05 |
(TIL Day03-02)자료구조-연결 리스트(1) 단방향 연결 리스트 (0) | 2021.08.05 |