(cache) アルゴリズム基礎論演習2009

課題6 「スタック」


内容

  スタック(s)をポインタを用いて実装し、要素(x)を先頭に挿入するpush(x,s)と、
  スタック(s)の先頭の要素を削除するpop(s)を作成せよ。

  プログラムの流れについて説明する。
  まず、使用者に対して「挿入」「削除」「プログラムの終了」のどの操作をするかを問う。
  プログラムは選択された操作を実行し、「プログラムの終了」が選択された時点で終了する。

  ※ スタックに挿入するデータの型は「整数」とする。

  ※ 正しく動作をしているかを確認するために、
    “リストの中身を表示する手続き(printList)”もプログラムに組み込みなさい。

入力

  (ⅰ) どの操作をするか
  (ⅱ) 操作が「挿入」なら入力する要素(整数)

出力

  出力は各操作直後の「リストの中身」とする。
  push(x,s) や pop(s) の直後で printList(s) を実行すればよい。

実行

  以下の流れにそってプログラムを実行せよ。

  (1) push(1,s):1を挿入する。
  (2) push(2,s):2を挿入する。
  (3) pop(s)   :先頭の要素を削除する。
  (4) push(3,s):3を挿入する。
  (5) pop(s)   :先頭の要素を削除する。
  (6) pop(s)   :先頭の要素を削除する。
  (7) プログラムを終了させる。

  正しく動作していれば、スタックの中身は空になる。

ヒント

出力例

  入力を赤字で示した。


 Select the operation.
    push : input value = 1
    pop  : input value = 2
    finish : input value = other

  Select the operation : 1
  push value : 1
    stack : 1,

  Select the operation : 2
    stack : 

  Select the operation : 0