Development/알고리즘

[8] [알고리즘 - 자료구조] 덱(Deque)이란? (선형구조) javascript 구현

Jun Mr 2021. 11. 10. 17:54
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 참외' ]

 

드디어 자료구조의

선형구조 개념을

전부 알아보았습니다.

 

다음에는 비선형구조를

한번 알아볼게요!

 

 

https://developerjun2.tistory.com/145

반응형