データ構造の話 1 データ構造 問題 次のデータに最適な構造を図示せよ。 (1) 100人の成績。英語、数学など、科目数10個。 (2) 家族と親戚。自分、兄弟、祖父母、おじおば、いとこ。 (3) バクテリアの分裂。1時間に1回、2個に分裂する。 (4) 顧客の注文がどんどん入ってくる。 5個くらい注文がたまっている。 先に来たものから処理する。 (5) 来た書類を机の上にどんどん重ねる。 5個たまっている。 上から処理していく。 2 データ構造 回答 (1) 100人の成績。英語、数学など、科目数10個。 2次元配列 (2) 家族と親戚。自分、兄弟、祖父母、おじおば、いとこ。 系図 (3) バクテリアの分裂。1時間に1回、2個に分裂する。 分岐図 (4) 顧客の注文がどんどん入ってくる。 5個くらい注文がたまっている。先に来たものから処理。 キュー(待ち行列) First in, first out FIFO (5) 来た書類を机の上にどんどん重ねる。 5個たまっている。上から処理していく。 スタック Last in, first out LIFO 入れる操作:Push, 出す操作: Pop 3 キューとスタック キュー(待ち行列) First in, first out スタック Last in, first out 入れる操作:Push, 出す操作: Pop キュー スタック 4 二分木の話 5 ツリー構造 節 枝 根 葉 (木構造) node ○全部 branch root 上にない。 leaf 下にない。 部分木 ある節から下 親 レベル0 レベル1 レベル2 子 6 二分木と二分探索木 二分木:節が持つ子の数が2以下のツリー構造 二分探索木:左の節<節<右の節 10 5 10から見て、右の 11,15,20は10より大きい。 15 11 20 問題: 1-20の数を全部使って、二分探索木を書け。 7 アルゴリズムの話 8 整列(ソート) 順番に並べる。 231 昇順 数字が大きくなる。123 降順 数字が小さくなる。321 以下、昇順で考える。 9 選択ソート 以下、昇順で考える。 2個ずつ比較して、小さい方が先になるように 入れ替える。 321 231 (1番めと2番め) 132 (1番めと3番め、1番めが確定) 123 (2番めと3番め、2番めが確定) 問題1 以下を選択ソートで整列させるステップを 全部書け。 (1) 39245 (2) 681452 問題2 選択ソートのアルゴリズムを書け。 10 アルゴリズム:手順 判断はひし形で書くことが多い。 料理の例 ソースを作る 味見をする。 おいしいか ループに なっている。 No Yes 終了 11 バブルソート 昇順で考える。 隣のデータを比較するので、 選択ソートよりも速い。 隣の2個ずつを比較する。 321 231 (1番めと2番め) 213 (2番めと3番め、3番めが確定) 123 (1番めと2番め、2番めが確定) 問題1 以下をバブルソートで整列させるステップを 全部書け。 (1) 39245 (2) 681452 問題2 バブルソートのアルゴリズムを書け。 12
© Copyright 2024 ExpyDoc