━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ データ構造・アルゴリズム論 確認問題4 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
●問 (スタックとキューの基本操作) (1) 空のスタックに対して,次の基本操作を順に実行する. 0をプッシュ,3をプッシュ,ポップ,6をプッシュ. スタックを (最上段が最右の) 列で表し, その変化を ([1,2,3] → [1,3] の形式で) 示せ. (2) 空のキューに対して,次の基本操作を順に実行する. 0を追加,3を追加,削除,6を追加. キューを (先頭が最左の) 列で表し,その変化を示せ. ────────────────────────────────────── ●答 (スタックとキューの基本操作) (1) [] → [0] → [0,3] → [0] → [0,6] (2) [] → [0] → [0,3] → [3] → [3,6] [解説] (1) スタックでは,要素の 追加・削除 の位置が最上段に固定されている. この問題では,スタックの最上段を列の末尾(最右要素)として表すので, プッシュでは列の末尾に要素を追加し,ポップでは列の末尾から要素を取り出す. (2) キューでは,列の末尾に要素を追加し,列の先頭から要素を取り出す. どちらも「0の追加,3の追加,削除,6の追加」という基本操作の系列を実行している. データ構造が違えば,同じ操作系列を実行しても結果が異なる,という点に注意する. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 授業のホームページ 山田 俊行 https://www.cs.info.mie-u.ac.jp/~toshi/