오늘은 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 자료구조를 활용하는 방법에 대해서 알아보았습니다.
알고리즘 문제 풀이 시, 간단하게 활용해보시기 바랍니다.

'컴공생의 Specification > JavaScript' 카테고리의 다른 글
[JavaScript] 배열 다루기 Step#1 (0) | 2022.06.17 |
---|---|
[JavaScript] 문자열 다루기 Step#3 (0) | 2022.06.07 |
[JavaScript] 문자열 다루기 Step#2 (0) | 2022.03.29 |
[JavaScript] 문자열 다루기 Step#1 (0) | 2022.03.21 |
[JavaScript] Array 정렬하기 (1) | 2022.03.16 |
댓글