JavaScript Array 알아보기 - 스택 & 큐로 사용하기

Just-gomin·2023년 10월 31일

💡 Array stack & queue 로 사용하기

📌 Stack With JS Array

StackLast In First Out 의 특징을 지닌 자료구조로 가장 마지막에 추가된 데이터가 가장 먼저 반출됩니다.

Stack에는 두 가지 주요 기능이 있는데, 데이터를 입력하는 기능인 PUSH와 데이터를 출력하는 기능인 POP입니다.

JS의 Array를 이용해 PUSHPOP을 다루는 것은 Array의 메소드를 이용한 두 가지 조합이 가능합니다.

  1. pushpop을 사용하는 조합 => 배열의 끝에서 데이터의 입출이 진행됩니다.
  2. unshiftshift를 사용하는 조합 => 배열의 앞에서 데이터의 입출이 진행됩니다.

👉 push & pop

const stack = [];

console.log("PUSH ------------------------------");
for (let i = 1; i <= 5; i++) {
    console.log(i);
    stack.push(i);
}

console.log("POP ------------------------------");
for (let i = 1; i <= 5; i++) {
    let popped = stack.pop();
    console.log(popped);
}

/*
    OUTPUT
    PUSH ------------------------------
    1
    2
    3
    4
    5
    POP ------------------------------
    5
    4
    3
    2
    1
*/

👉 unshiftshift`

const stack = [];

console.log("PUSH ------------------------------");
for (let i = 1; i <= 5; i++) {
    console.log(i);
    stack.unshift(i);
}

console.log("POP ------------------------------");
for (let i = 1; i <= 5; i++) {
    let popped = stack.shift();
    console.log(popped);
}

📌 Queue With JS Array

QueueFirst In First Out 의 특징을 갖는 자료구조로 가장 처음에 들어온 데이터가 가장 처음으로 반출됩니다.

Queue에는 두 가지 주요 기능이 있는데, 데이터를 입력하는 기능인 Enqueue와 데이터를 출력하는 기능인 Dequeue입니다.

JS의 Array를 이용해 EnqueueDequeue를 다루는 것은, Stack에서와 마찬가지로 2가지의 조합이 가능합니다.

  1. pushshift를 사용하는 조합 => 데이터의 입력은 배열의 끝에서, 데이터의 출력은 배열의 앞에서 진행됩니다.
  2. unshiftpop을 사용하는 조합 => 데이터의 입력은 배열의 앞에서, 데이터의 출력은 배열의 뒤에서 진행됩니다.

👉 push & shift

const queue = [];

console.log("Enqueue ------------------------------");
for (let i = 1; i <= 5; i++) {
    console.log(i);
    queue.push(i);
}

console.log("Dequeue ------------------------------");
for (let i = 1; i <= 5; i++) {
    let dequeued = queue.shift();
    console.log(dequeued);
}

/*
    OUTPUT
    Enqueue ------------------------------
    1
    2
    3
    4
    5
    Dequeue ------------------------------
    1
    2
    3
    4
    5
*/

👉 unshift & pop

const queue = [];

console.log("Enqueue ------------------------------");
for (let i = 1; i <= 5; i++) {
    console.log(i);
    queue.unshift(i);
}

console.log("Dequeue ------------------------------");
for (let i = 1; i <= 5; i++) {
    let dequeued = queue.pop();
    console.log(dequeued);
}

/*
    OUTPUT
    Enqueue ------------------------------
    1
    2
    3
    4
    5
    Dequeue ------------------------------
    1
    2
    3
    4
    5
*/
profile
고민은 고민일 뿐. 고민 말고 그냥 고.

0개의 댓글