Development/알고리즘

[7] [알고리즘 - 자료구조] 큐(Queue)란? (선형구조) javascript 구현

Jun Mr 2021. 11. 10. 16:41
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': '사과' }

 

자료구조를 하나씩 알아가고 있습니다.

재미있네요!

 

 

 

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

덱(Deque) 이란? 양쪽 끝에서 삽입과 삭제를 모두 허용하는 자료의 구조입니다. 스택과 큐의 복합 형태죠. 이런 형태가 될 수 있겠네요. 이번에는 javascript의 내장 객체를 사용하여 빠르고 간단하게

developerjun2.tistory.com

 

반응형