新・明解C言語で学ぶアルゴリズムとデータ構造


新・明解C言語で学ぶアルゴリズムとデータ構造 (明解シリーズ)


SBクリエイティブ


著者:柴田望洋


はじめに
本書の構成

序章 アルゴリズム体験学習ソフトウェア
1 学習を始める前に
学習をサポートするソフトウェアとドキュメントについて
ソフトウェアとドキュメントの概略
2 アルゴリズム体験学習ソフトウェア
アルゴリズム体験学習ソフトウェアについて
メニュー画面
<三値の最大値>の体験学習
<単純挿入ソート>の体験学習
その他のアルゴリズムの体験学習

第1章 基本的なアルゴリズム
1-1 アルゴリズムとは
三値の最大値
条件判定と分岐
フローチャート(流れ図)の記号
1-2 繰返し
1からnまでの整数の和を求める
正の値の読込み
構造化プログラミング
多重ループ
章末問題

第2章 基本的なデータ構造
2-1 配列
データ構造
配列
割付け記憶域期間と動的なオブジェクトの生成
配列の動的生成
配列の要素の最大値を求める
配列の要素の並びを反転する
基数変換
素数の列挙
多次元配列
年内の経過日数の計算
2-2 構造体
構造体とは
構造体の配列
章末問題

第3章 探索
3-1 探索アルゴリズム
探索とキー
配列からの探索
3-2 線形探索
線形探索
番兵法
3-3 2分探索
2分探索
計算量
bsearch:ソートずみ配列からの探索
3-4 ハッシュ法
ソートずみ配列の操作
ハッシュ法
衝突
チェイン法
オープンアドレス法
章末問題

第4章 スタックとキュー
4-1 スタック
スタックとは
スタックの実現
4-2 キュー
キューとは
配列によるキューの実現
リングバッファによるキューの実現
章末問題

第5章 再帰的アルゴリズム
5-1 再帰の基本
再帰とは
階乗値
ユークリッドの互除法
5-2 再帰アルゴリズムの解析
再帰アルゴリズムの解析
再帰アルゴリズムの非再帰的表現
5-3 ハノイの塔
ハノイの塔
5-4 8王妃問題
8王妃問題とは
王妃の配置
分枝操作
限定操作と分枝限定法
8王妃問題を解くプログラム
章末問題

第6章 ソート
6-1 ソートとは
ソートとは
6-2 単純交換ソート(バブルソート)
単純交換ソート(バブルソート)
6-3 単純選択ソート
単純交換ソート(バブルソート)
6-4 単純挿入ソート
単純挿入ソート
6-5 シェルソート
単純挿入ソートの特徴
シェルソート
6-6 クイックソート
クイックソートの概略
分割の手順
クイックソート
非再帰的クイックソート
枢軸の選択
時間計算量
qsort:配列のソート
6-7 マージソート
ソートずみ配列のマージ
マージソート
6-8 ヒープソート
ヒープ
ヒープソート
根を削除したヒープの再構築
ヒープソートへの拡張
配列のヒープ化
ヒープソートの時間計算量
6-8 度数ソート
度数ソート
章末問題

第7章 集合
7-1 集合とは
集合と要素
部分集合と真部分集合
集合の演算
7-2 配列による集合
配列による集合
7-3 ビットベクトルによる集合
ビットベクトルによる集合

第8章 文字列探索
8-1 文字列の基本
文字列とは
文字列リテラル
配列による文字列
ポインタによる文字列
文字列の長さ
文字列からの文字の探索
文字列の比較
8-2 力まかせ法
文字列探索
力まかせ法(単純法)
8-3 KMP法
KMP法
8-4 Boyer-Moore法
Boyer-Moore法
strstr関数
章末問題

第9章 線形リスト
9-1 線形リストとは
線形リスト
線形リストの実現
9-2 ポインタによる線形リスト
ポインタによる線形リスト
線形リストを利用するプログラム
9-3 カーソルによる線形リスト
カーソルによる線形リスト
配列内の空き要素
フリーリスト
9-4 循環・重連結リスト
循環リスト
重連結リスト
循環・重連結リスト
循環・重連結リストを利用するプログラム
章末問題

第10章 木構造
10-1 木構造
木とは
順序木と無順序木
順序木の探索
10-2 2分木と2分探索木
2分木
完全2分木
2分探索木
2分探索木の実現
章末問題

おわりに
参考文献
索引
謝辞
著者紹介

書籍目次

Posted by shi-n