728x90
반응형
덱(Deque) 이란?
양쪽 끝에서 삽입과 삭제를
모두 허용하는 자료의 구조입니다.
스택과 큐의 복합 형태죠.
이런 형태가 될 수 있겠네요.
이번에는
javascript의 내장 객체를 사용하여
빠르고 간단하게 구현해보겠습니다.
class Deque {
#items;
#size;
constructor() {
this.#items = [];
this.#size = 0;
}
// 처음 삽입
firstIn(data) {
this.#items.unshift(data);
this.#size++;
}
// 처음 제거
firstOut() {
this.#items.shift();
this.#size--;
}
// 마지막 삽입
lastIn(data) {
this.#items.push(data);
this.#size++;
}
// 마지막 제거
lastOut() {
this.#items.pop();
this.#size--;
}
// 확인
get() {
console.log('size=', this.#size, 'items=', this.#items);
return this.#items;
}
}
이번에는 데이터를 직접 넣고 삭제해보면서
확인해보겠습니다.
const deque = new Deque();
deque.firstIn('2 바나나');
deque.lastIn('3 참외');
deque.lastIn('4 수박');
deque.firstIn('1 사과');
deque.get();
// size= 4 items= [ '1 사과', '2 바나나', '3 참외', '4 수박' ]
deque.lastOut();
deque.firstOut();
deque.get();
// size= 2 items= [ '2 바나나', '3 참외' ]
드디어 자료구조의
선형구조 개념을
전부 알아보았습니다.
다음에는 비선형구조를
한번 알아볼게요!
반응형
'Development > 알고리즘' 카테고리의 다른 글
[10] [알고리즘 - 자료구조] 트리(tree)란? (비선형구조) javascript 구현 (1) | 2021.11.14 |
---|---|
[9] [알고리즘 - 자료구조] 비선형구조란? (0) | 2021.11.11 |
[7] [알고리즘 - 자료구조] 큐(Queue)란? (선형구조) javascript 구현 (0) | 2021.11.10 |
[6] [알고리즘 - 자료구조] 스택(Stack)이란? (선형구조) javascript 구현 (0) | 2021.11.10 |
[5] [알고리즘 - 자료구조] 연결리스트(Linked List)란? (선형구조) javascript 구현 (0) | 2021.11.09 |