#クラスによるスタックの実装

class Stack:
    S       # 要素を管理する配列
    top     # スタックの頂点を指す矢印

    init():
        top ← -1     # 初期化

    push(x):
        S[++top] ← x # topを1増やしてからxを代入

    pop():
        return S[top--]   # S[top]を返した後にtopを1減らす

    peak()
        return S[top]

    empty():
        return top = -1   # topが-1のとき真を返す

    size():
        return top + 1


# スタックのシミュレーション

Stack st(5) # 5つの要素を管理できるスタックを生成する
st.push(8)
st.push(6)
st.push(7)
st.pop()
st.push(5)
st.pop()