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 |