덱이란?
덱(Deque)은 데이터의 삽입과 삭제를 head와 tail에서 자유롭게 이루어지는 자료구조이다.
덱을 이용하면 스택과 큐를 구현할 수 있다.
addFirst,RemoveFirst 혹은 addLast,RemoveLast를 이용하면 스택이 된다.
반대로, addFirst,RemoveLast 혹은 addLast,RemoveFirst를 이용하면 큐가 된다.
import { DoublyLinkedList } from './DoublyLinkedList.mjs';
class Deque{
constructor(){
this.list = new DoublyLinkedList();
}
printAll(){
this.list.printAll();
}
addFirst(data){
this.list.insertAt(0, data);
}
removeFirst(){
return this.list.deleteAt(0);
}
addLast(data){
this.list.insertAt(this.list.count, data);
}
removeLast(){
return this.list.deleteLast();
}
isEmpty(){
return (this.list.count == 0);
}
}
export { Deque };