본문 바로가기
컴공생의 Specification/JavaScript

[JavaScript] Stack과 Queue 만들기

by UIC 2022. 3. 18.
728x90

오늘은 JavaScript로 Stack과 Queue를 구현해보겠습니다.

 

 

그러면 먼저 Stack과 Queue를 알아보겠습니다.

 

 

 

[ Stack ] : FILO(First In, Last Out. 선입후출)

"간단하게 먼저 들어온 놈이 늦게 나간다"

 

즉, 일렬로 된 통에 값을 넣고 뺄 때 활용하는 자료구조입니다.

 

 

 

 

 

 

 

 

이런 형태로 되어있는 길다란 통입니다.

한 쪽만 구멍이 뚫려있어 그 구멍으로만 들어오고 나갈 수 있다고 생각하시면 이해가 편합니다.

 

 

 

 

과연, Stack은 JavaScript로 어떻게 구현하고, 활용할 수 있을까요?

바로 알아보겠습니다.

 

 

// 값 넣기
Array.push(Value);

// 값 빼기
Value = Array.pop();

 

 

Array 함수 중에서 push()는 한 개 이상의 파라미터를 가지며, 값을 Array의 맨 뒤에 추가해주는 함수입니다.

pop()은 파라미터를 가지지 않으며, Array에서 맨 에 있는 값을 제거하고 그 요소를 반환해주는 함수입니다.

 

 

Stack은 결국 값을 넣고 빼기 위한 자료구조로,

Array를 통해 넣고 빼는 방법을 간단하게 구현할 수 있습니다.

이에, 위 두개의 Array 함수로 간단하게 Stack 자료구조로 활용할 수 있습니다.

 

 

 

 

 

[ Queue ] : FIFO(First In, First Out. 선입선출)

"간단하게 먼저 들어온 놈이 먼저 나간다"

 

즉, 일렬로 된 통에 한 쪽은 입구, 한쪽은 출구의 형태로

줄을 서야하는 데이터를 저장할 때 자료구조입니다.

 

특히, MessageQueue와 같이 통신 상에서

먼저 수신한 Message를 먼저 처리하게하기 위한 자료구조로 많이 활용됩니다.

 

 

 

 

 

 

 

 

이런 형태로 되어있는 길다란 통입니다.

Stack과 다른 점은 양 쪽 모두 구멍이 뚫려있어

한 쪽 구멍으로는 나갈 수만 있고, 다른 한 쪽 구멍으로는 들어올 수만 있다고 생각하시면 이해가 편합니다.

 

 

 

 

Stack과 유사하지만 다른 Queue는 JavaScript로 어떻게 구현하고, 활용할 수 있을까요?

바로 알아보겠습니다.

 

 

// 값 넣기
Array.push(Value);

// 값 빼기
Value = Array.shift();

 

 

push()는 Stack에서와 같이 동일하게 맨 뒤에 파라미터 값을 추가해주는 함수입니다.

여기서 값을 빼는 용도로 활용된 함수는 shift()입니다.

shift()는 파라미터를 가지지 않으며, pop()과 다르게

Array에서 맨 에 있는 값을 제거하고 그 요소를 반환해주는 함수입니다.

 

 

Queue는 Stack과 유사하지만 다른 용도로 값을 넣고 빼기 위한 자료구조로,

Array를 통해 정말 간단하게 구현할 수 있습니다.

 

 

지금까지 JavaScript의 Array로

Stack과 Queue 자료구조를 활용하는 방법에 대해서 알아보았습니다.

 

 

알고리즘 문제 풀이 시, 간단하게 활용해보시기 바랍니다.

 

 

 

 

728x90

댓글