728x90
반응형
큐(Queue) 란?
가장 먼저 리스트에 삽입된 원소가
가장 먼저 삭제되는 구조입니다.
FIFO(First In First Out) 특징을
가지고 있습니다.
가장 쉬운 예로
일상생활에서 쉽지 볼 수 있는 예입니다.
가장 먼저 줄은 선 사람이
가장 먼저 타는,
일반적인 줄을 서는 구조입니다.
데이터는 이렇게
이동을 하겠네요!
Javascript로 구현을 해볼게요.
in(item) {
this.#item.push(item);
}
out() {
return this.#item.shift(); // 0번째 제거
}
내장 객체를 사용하여
배열로 아주 간단히 구현이 가능합니다.
class Queue {
#items;
constructor() {
this.#items = [];
}
in(data) {
this.#items.push(data);
}
out() {
return this.#items.shift(); // 0번째 제거
}
get() {
console.log('size=', this.#items.length, 'items=', this.#items);
return this.#items;
}
isEmpty() {
return this.#items.length == 0;
}
}
이제 실행을 한 번 해볼게요.
const queue = new Queue();
queue.in('바나나');
queue.in('사과');
queue.in('참외');
queue.in('수박');
queue.get();
// size= 3 items= { '0': '바나나', '1': '사과', '2': '참외' }
queue.out();
queue.get();
// size= 2 items= { '0': '바나나', '1': '사과' }
자료구조를 하나씩 알아가고 있습니다.
재미있네요!
반응형
'Development > 알고리즘' 카테고리의 다른 글
[9] [알고리즘 - 자료구조] 비선형구조란? (0) | 2021.11.11 |
---|---|
[8] [알고리즘 - 자료구조] 덱(Deque)이란? (선형구조) javascript 구현 (0) | 2021.11.10 |
[6] [알고리즘 - 자료구조] 스택(Stack)이란? (선형구조) javascript 구현 (0) | 2021.11.10 |
[5] [알고리즘 - 자료구조] 연결리스트(Linked List)란? (선형구조) javascript 구현 (0) | 2021.11.09 |
[4] [알고리즘 - 자료구조] 순차리스트 란? (선형구조) javascript 구현 (0) | 2021.11.08 |