FIFO型の挙動はこんな感じ。
a[0][1][2][3][4][5]
Stack(6) □□□□□□
push(8) 8□□□□□
push(7) 8 7□□□□
push(4) 8 7 4□□□
pop() □ 7 4□□□//出力:8
もう眠いので手短に書くと、必要なのは、挿入位置、取り出し位置、要素数。
push時は挿入位置と要素数を増分し、pop時は挿入位置を増分、要素数を減分する。留意点として、スタックデータが配列の終端と紫檀をまたぐ事があるので、挿入位置など、単純に増分するのではなく、配列の終点から増分する時は、0に戻してやる必要がある。
…そんな感じで許してください。