C/C++アルゴリズム入門 だれでもわかるデータ構造とアルゴリズム


C/C++アルゴリズム入門―だれでもわかるデータ構造とアルゴリズム


ピアソン・エデュケーション


目次


はじめに
訳者まえがき

第1章 データ構造とは
1.1 データ構造とは何か
まとめ
1.2 静的データ構造と動的データ構造
まとめ
1.3 なぜデータ構造が必要か
まとめ
1.5 データ構造への操作
文字列
配列
ユーザ定義(structによる)
線形リスト
スタック
キュー
ツリー
グラフ
ハッシュテーブル
まとめ
1.6 データ構造の選択
まとめ
1.7 C++に関する注記
まとめ
1.8 練習問題
一般概念

第2章 文字列
2.1 文字と文字列
概論
文字列の格納
プログラムの分析
内部の詳細
プログラムの分析
要素の置かれる場所
まとめ
2.2 文字列の初期化
まとめ
2.3 関数間での文字列の受け渡し
まとめ
2.4 文字列の要素の処理
1文字ずつの入力
文字の検査
文字の検査続編
数を探す
まとめ
2.5 文字列操作関数
strlen()
strcat()とstrncat()
strcmp()とstrncmp()
strchr()とstrrchr()
strstr()
strpbrk()
strtod()、strtol()、strtoul()
まとめ
2.6 文字列のソートと処理
ISBNチェッカー
母音の数え上げ
回文テスター
トークン分解プログラム
テキストの暗号化
まとめ
2.7 アプリケーションプログラム:テキスト整形プログラム
議論
課題
アルゴリズムの整理
処理の概要
まとめ
2.8 練習問題
一般概念
プログラム設計

第3章 数値配列
3.1 数値配列の初期化
概論
基礎概念
int型配列
配列の内部
独自の値を格納する
まとめ
3.2 関数間での配列の受け渡し
数値配列を渡す
プログラムの分析
数値配列の返却
まとめ
3.3 数値配列への操作
概論
配列の添え字操作
並び替え
プログラムの解析
最小値の探索
プログラムの解析
配列要素の入れ替え
配列の検索
まとめ
3.4 数値配列のソート
バブルソート
バブルソートの規則(昇順ソート用)
サンプルプログラム
プログラムの解析
バケットソート
マージソート
クイックソート
qsort()
まとめ
3.5 多次元数値配列
概論
基礎概念
プログラムの解析
配列の応用
プログラムの解析
複数の列の和
プログラムの解析
魔方陣
まとめ
3.6 エイトクイーンパズル
概論
問題
探索アルゴリズム
プログラム完全版
まとめ
3.7 練習問題
一般概念
プログラム設計

第4章 ユーザ定義データ構造
4.1 列挙型
概論
データの表現
プログラムの分析
別の形式
列挙型の例
enumに値を割り当てる
まとめ
4.2 独自のデータ型に命名する
概論
typedefの導入
プログラムの分析
他の応用
まとめ
4.3 structでデータ構造を作成する
概論
構造体
構造体にデータを入れる
プログラムの分析
まとめ
4.4 構造体の使い方
概論
構造体タグ
プログラムの分析
構造体型に別名をつける
構造体のポインタ
構造体を返す関数
プログラムの分析
まとめ
4.5 共用体
概論
共用体
まとめ
4.6 構造体の中の構造体
概論
構造体の中の構造体
構造体の中の配列
構造体の多次元配列
まとめ
4.7 アプリケーションプログラム:MiniMicro
概論
問題
アルゴリズム作成
処理全般
まとめ
4.8 練習問題
一般概論
プログラム設計

第5章 線形リスト
5.1 ノードの概念
まとめ
5.2 線形レストの初期化
まとめ
5.3 線形リストへのノードの追加
まとめ
5.4 線形リストからのノードの削除
まとめ
5.5 線形レストの探索
まとめ
5.6 多重線形リスト
まとめ
5.7 C++の線形リストオブジェクト
まとめ
5.8 練習問題
一般概念
プログラム設計

第6章 スタックとキュー
6.1 FIFO対LIFO
まとめ
6.2 記憶割り当てについて
まとめ
6.3 スタック操作
まとめ
6.4 実行時スタック
データの保存場所
マイクロプロセッサ内部データの保存場所
引数
静的変数の格納
まとめ
6.5 キュー操作
まとめ
6.6 優先順位キュー
まとめ
6.7 スタックオブジェクトとキューオブジェクト
まとめ
6.8 練習問題
一般概念
プログラム設計

第7章 ツリー
7.1 用語
まとめ
7.2 ツリーの階層構造
まとめ
7.3 バイナリツリー
ノードの計数
ツリーの深さを調べる
まとめ
7.4 一般化ツリーの訪問法
まとめ
7.5 ツリーの探索
バイナリサーチ
深さ優先探索法と幅優先探索法
一般化ツリーの探索法
まとめ
7.6 C++のツリーオブジェクト
まとめ
7.7 練習問題
一般概念
プログラム設計

第8章 グラフ
8.1 用語
まとめ
8.2 グラフ表現
まとめ
8.3 有向グラフと無向グラフ
まとめ
8.4 グラフの訪問法
まとめ
8.5 最短経路の探索
まとめ
8.6 C++のGRAPHオブジェクト
まとめ
8.7 練習問題
一般概念
プログラム設計

第9章 ハッシュテーブル
9.1 用語
まとめ
9.2 ハッシュテーブルを用いる理由
まとめ
9.3 ハッシュ関数
まとめ
9.4 衝突検出
まとめ
9.5 衝突解決
まとめ
9.6 練習問題
一般概念
プログラム設計

第10章 さまざまなデータ構造
10.1 ヒープ
まとめ
10.2 データ構造としてのファイル
まとめ
10.3 データ構造としてのディレクトリ
まとめ
10.4 集合
まとめ
10.5 参照テーブル
まとめ
10.6 C++のSETオブジェクト
まとめ
10.7 練習問題
一般概念
プログラム設計

第11章 アプリケーションプログラム:仮想迷路
11.1 レイキャスティングとは
壁面の見え方
光景全体の描画
まとめ
11.2 先に計算したデータテーブルの利用
まとめ
11.3 実行時スタックの使用を減らす
まとめ
11.4 仮想世界の表現
壁面
まとめ
11.5 テクスチャマッピング
床面と天井
まとめ
11.6 Virtual Mazeプログラム
ゲームループ全体
プログラム
残された課題
まとめ
11.7 練習問題
一般概念
プログラム設計

索引

書籍目次

Posted by shi-n