データ構造-スタック/キュー



Stack
stackは「積み上げる」という意味で、皿を積み上げる形に似た資料構造です
stackは最も遅く入った資料が最初に現れたLIFO形式の資料構造である.
  • スタック使用例)Webブラウザにおいて後方、前方
  • .
    ✅ Stack用語集
  • プッシュ:要素
  • を上に追加
  • pop:トップ要素
  • をポップアップ
    ✅ JavaScriptによるStackの実装
    class Stack {
        constructor() {
          this.storage = {};
          this.top = 0;
        }
      
        size() {
          return this.top;
        }
    
        push(element) {
          this.storage[this.top] = element;
          this.top += 1;
        }
          
        pop() {
          if (this.top===0) {
            return;
          }
          const pointer = this.top-1;
          const result = this.storage[pointer];
          delete this.storage[pointer];
          this.top -= 1;
          
          return result;
        }
      }
    Queue
    Queueは「並んで待つ」という意味で、並んで待つ形式の資料構造に似ています
    queueは最も早く入った資料が最初に現れたFIFO形式の資料構造である.
  • キュー使用例)プリンタの印刷ジョブ、バッファ(各機器間の速度差を克服するための一時メモリ)
  • .
    ✅ Queue用語表
  • Front:Queue前
  • Rear:Queueの逆数
  • EnQueue:データを後方に追加
  • DeQueue:一番前のデータ抽出
  • ✅ JavaScriptによるQueueの実装
    class Queue {class Queue{
        constructor(){
            this.queue = [];
            this.front = 0;
            this.rear = 0;
        }
    
        enqueue(value){
            this.queue[this.rear++] = value;
        }
    
        dequeue(){
            const value = this.queue[this.front];
            delete this.queue[this.front];
            this.front += 1;
            return value;
        }
    
        peek(){
            return this.queue[this.front];
        }
    
        size(){
            return this.rear - this.front;
        }
    }