アルゴリズムとデータ構造
演習(English)

内容  演習日  提出期限  Subject 
第 1 回  イントロダクション [alg1-ex01]
第 2 回  リスト [alg1-ex02]
第 3 回  スタックとキュー [alg1-ex03]
第 4 回  再帰 [alg1-ex04]
第 5 回  計算量解析 [alg1-ex05]
第 6 回  ツリー1(解析木) [alg1-ex06]
第 7 回  ツリー2(二分探索木) [alg1-ex07]
第 8 回  ソート1(遅いソート) [alg1-ex08]
第 9 回  ソート2(最速のソート) [alg1-ex09]
第 10 回  サーチ1(二分探索) [alg1-ex10]
第 11 回  サーチ2(平衡木) [alg1-ex11]
第 12 回  サーチ3(ハッシュ) [alg1-ex12]
第 13 回  グラフ [alg1-ex13]
第 14 回  動的計画法 [alg1-ex14]
注意: プログラムを送るときは、 プログラムだけを本文に書いて送ってください。 プログラム以外の文章や、シグネチャなどは入れないでください。

演習の目的

基本的なアルゴリズムを理解し、それをプログラムで実現することを 目的とします。プログラミング言語は C 言語を用います。

演習の方針

設問は 3 つで、その内容は次の通りになっています。
問題1
アルゴリズムに関するの基本的な問題(必須)

アルゴリズムを理解しているかを確認する問題です。 アルゴリズムを正しく理解していないと、プログラムは組めません。 印刷できる形式(PostScript)のものが用意してあるので、 それを使って解いてください。 演習時間内に解いて TA にチェックしてもらってください。 用紙は回収しません。
問題2
1 のアルゴリズムを C 言語で書く問題(必須)

1 のアルゴリズムをプログラムで書きます。 アルゴリズムがきちんと理解できていなければ、 正しいプログラムを書くことはできません。 アルゴリズムをよく理解してから書いてください。 演習時間内に終われるよう頑張ってください。
問題3
発展問題(選択)

少し難しめの問題です。 これは選択問題ですので、余力がある人は挑戦してみてください。 提出方法は 2 と同様ですが、Subject には Optional という文字を追加してください。
例:Subject: [alg1-ex01] Optional
すべての問題に対して、解答例、プログラムを用意してあります。 公開はしないので、見たい方は TA に言って見せてもらってください。

提出方法

教科書について

必要に応じて、教科書の参考になるページを挙げていきます。 教科書として指定されているのは第1巻だけですが、 第2巻の方についても挙げておくので、見たい方は先生や TA の方に 見せてもらってください。

教科書に載っている関数などは参考にしてもらって構いませんが、 演習で使うスケルトンファイルと若干異なる箇所もあります (変数名などが違う程度で、概要は変わりありません。) プログラムをよく理解した上で参考にしてください。 また、教科書のプログラムでは l(エル)と 1 (いち)がとても区別しにくい ので注意してください。
int l = 1;

プログラム作成に困ったら

プログラムのエラーメッセージの意味や、 どこが間違っているかがわからない場合は、次のページを参考にしてみてください。

お知らせ


演習に関する意見や感想、質問などがありましたら、先生やTAまでどうぞ。


Written by わかまつなおき