프론트엔드 개발자로 일하기

자바스크립트로 스택, 큐 구현하기(stack, queue)

프론트루나 2024. 9. 19. 10:13
반응형

코테에서 기본으로 등장하는 스택, 큐 를 구현해보자!

 

 

큐(Queue)

- 데이터를 집어넣을 수 있는 선형(linear) 자료형

- 먼저 집어넣은 데이터가 먼저 나온다. (FIFO)

- 데이터를 집어넣는 enqueue, 데이터를 추출하는 dequeue 등의 작업을 할 수 있다. 

class Queue {
	constructor() {
    	this._arr = [];
    }
    
    enqueue(item) {
    	this._arr.push(item);
    }
    
    dequeue() {
    	return this._arr.shift();
    }
}

const queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);

queue.dequeue(); // 1

 

큐는 순서대로 처리해야 하는 작업을 임시로 저장해두는 버퍼(buffer)로서 많이 사용된다. 

 

 

 

스택(stack)

- 데이터를 집어넣을 수 있는 선형(linear) 자료형

- 나중에 집어넣은 데이터가 먼저 나온다(LIFO)

- 데이터를 집어넣는 push, 데이터를 추출하는 pop, 맨 나중에 집어넣은 데이터를 확인하는 peek 등의 작업을 할 수 있다. 

 

class Stack {
  constructor() {
    this._arr = [];
  }
  push(item) {
    this._arr.push(item);
  }
  pop() {
    return this._arr.pop();
  }
  peek() {
    return this._arr[this._arr.length - 1];
  }
}

const stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
stack.pop(); // 3

 

스택은 서로 관계가 있는 여러 작업을 연달아 수행하면서 이전의 작업 내용을 저장해둘 필요가 있을때 사용된다. 

 

 

반응형