データ構造StackとQueue(1)


StackとQueue


StackとQueueは現実生活でよく見られる資料構造である.2つの似たような異なる資料構造は多くの場所で運用されているので、重要性が高い!

二つの定義だけを見ると、想像以上に分かりやすく、上の図を見ると、両者の違いや性質がはっきりと見えます.
でも本当にコードに移行して、実行する順番が頭の中で歪んでしまったので、考えが多くなりました...
今は少し理解しているようですが、もう一度整理してから理解すべきです!

1. Stack



スタックを理解するときはfringlesを考えると理解しやすいかもしれません.
ポテトを食べるときは一番上から出して食べるんじゃないですか?一番下のビスケットが食べたいなら、上のビスケットを出してから一番下のビスケットを食べなければなりません.
スタックもこのような構造です.これは最初に入ったのがLIFOであることを意味します!フリングスに似ていませんか?

スタンバイ電源ケーブル


ポインタ=0
1. push
1.1. storage[pointer]=入力値.
1.2. ポインタ+1
2. pop
2.1. storage[ポインタ]を削除します.
2.2. ポインタ-1
3. Size
3.1. リターンポインタ

Stack JSコード


JavaScriptコードを使用して実装する場合(元のオブジェクト構造が配列に変更されているため、理解しやすい):
class Stack {
  constructor() {
    this.storage = [];
  }
  size() {
   return this.storage.length
  ]
  push(element) {
    this.storage.push(element)
  }
  pop() {
    let targetel = ''
    targetel = this.storage[this.storage.length - 1]
    
    if(this.storage.length > 0){    // '빈 스택에 pop 연산을 적용했을때 에러 방지
      this.storage.pop()
    }
    return targetel
  }
}
実行する場合.
stack.push('a')
stack.push('b')
stack.push('c')
console.log(stack.storage) // ['a', 'b', 'c']
stack.pop() // 'c'
console.log(stack.storage) // ['a', 'b']
こんな感じで後で入った先に出てきます!!