はじめに
本講義ノートは、福井大学教育学部情報社会文化課程における「データ構造論」の講義内容をもとに、データ構造とアルゴリズムを基本にするCプログラミングという立場からまとめたものである。
データ構造とアルゴリズムに関する参考書は従来から数多く出版されているが、様々なデータ構造に対する基本操作の定義、アルゴリズムの中核部分の定義、およびアルゴリズムの評価が中心であり、プログラミングの全体像まで触れられていないことが多い。
本書では、具体的な課題を想定し、その課題を解く際にどのようなデータ構造とアルゴリズムが採用できるかをプログラムの全体像とともに示している。また、そのアルゴリズムが実行される際の効率については比較的簡単な解説だけにとどめ、プログラミング手法についての説明に重点を置いている。
本書で採り上げる課題は、住所録の検索を例にした探索問題、都市間を結ぶ道路とその距離から最短経路を求める問題、2つの水差しでその容量以外の水の量を量る水差し問題を例にした問題解決、単純なテキストエディタの作成、初歩的なインタプリタおよびコンパイラの作成である。様々なデータ構造の実例を示すために、非常に広い分野から課題を採用したため、一般的によく利用される例となっていないものもあるが、比較的現実の問題に近いものを選択できたと考える。
データ構造、アルゴリズム、C言語プログラミング、いずれかの面で、本書を読まれる方の参考になることを期待する。
1994年初冬
高濱徹行