StackとQueueの違い

1759 ワード


Stack
Stackはその名の通り、積み上げ、積み重ねという意味です.自動販売機からコーヒーを取って飲んだ後、紙コップを回収台に投げた構造に似ています.先に入れた紙コップに新しい紙コップがあるので、紙コップを出すなら、最後に捨てた紙コップを先に出すべきです.このようにStackは、入力も出力も一方向で、先に入力して出力するのが特徴です.この構造は、「最初の入力」または「最初の入力」とも呼ばれます.
Stackでは,挿入操作をプッシュ,削除操作をPopと呼ぶ.JavaScriptでは、配列長を事前に定義することはめったにありませんが、Cが「満タン」(Length限定)スタックにデータをプッシュしようとすると、「Stack Overflow」エラーが発生します.(あの有名なStack Overflowはここに...)逆に、空のスタックに存在しない値Popをしようとすると、Stack Underflowでエラーが発生します.
Stack例
Webブラウザでの後退と前進
元に戻す
JavascriptによるStackの実装:
class Stack {
    constructor() {
        this.storage = [];
    }
    push(item) {
        this.storage.push(item);
    }
    pop() {
        return this.storage.pop();
    }
    isEmpty() {
        return this.storage.length === 0
    }
    isFull() {
        return this.storage[this.storage.length - 1] !== undefined
    }
}

Queue
Queueは並んで待つという意味ですその構造はキューに似ています.トイレを使ったり、切符売り場に並んだりして、最初に来た人が最初に何かを見て切符を買うとします.もちろん、後の人は最後に事を処理することができます.したがって,Queueの構造は,先にデータを入力し,後にデータを入力する.主に入力された順序でデータを処理するために使用され、「最初の入力」または「最初の入力」とも呼ばれます.
Queueでの挿入操作をEnqueue,削除操作をDequeueと呼ぶ.
Queueの例
オペレーティングシステムのタスク処理システム
プリンタの動作原理
JavascriptによるQueueの実装:
class Queue {
    constructor() {
        this.storage = []
    }
    enqueue(item) {
        this.storage.push(item);
    }
    dequeue() {
        return this.storage.shift();
    }
}
StackとQueueの違いを示す単純な表
StackQueue入出力入出力