小野マトペの業務日誌(アニメ制作してない篇)

はてなダイアリーの閉鎖をうけ、旧ブログ http://d.hatena.ne.jp/ono_matope/ から移行しました。続きは→ http://matope.hatenablog.com/

FILO編

FILOの操作って言うのは、下の四角をスタック内の配列aとして…

      a[0][1][2][3][4][5]
Stack(6) □□□□□□
push(8)   8□□□□□
push(7)    8 7□□□□
push(4)    8 7 4□□□
pop()      8 7□□□□//出力:4

な感じ。pushした時、a[現在pushされている要素の数]に新たな要素を加えている事がわかる。
よって、変数b(現在pushされている要素の数)を用意するのが妥当である。
bはpushする度に増分し、popすると減少する。基本的には、push時はa[b]に引数を代入、pop時にはbを返す事でFILO型スタックは実現できる。
気を付けるポイント

  • スタック配列が埋まっている時(a.length-1==b)は、pushしてもbは増分しないし、配列への代入も行われない。警告文をプリントする事。
  • スタック配列が空の時(b==0)は、popしてもbは減分しない。-1を返す。
  • bの増減分を行うタイミング