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の増減分を行うタイミング