・読者特典(ダウンロードコンテンツ)のご案内
・学習の手引き.
■第1章 変数とデータ構造
■■1.1 アルゴリズムの要件と表現方法
■■1.2 変数
■■1.3 配列
■■1.4 リスト
■■1.5 スタックとキュー
■■1.6 木構造
COLUMN――――――――――――――――――――
・円周率3.14を整数型の変数に入れたらどうなる?
・データ構造とは何か?
・双方向リストの場合,ポインタ部は二つ必要!
・リストを用いたスタックとキューの実現
・部分木をもつ節の削除
――――――――――――――――――――
■第2章 擬似言語プログラミング
■■2.1 手続と関数
■■2.2 基本制御構造と条件式
■■2.3 選択処理(if文)
■■2.4 繰返し処理(while文とdo-while文)
■■2.5 繰返し処理(for文)
■■2.6 オブジェクト指向とクラス
COLUMN――――――――――――――――――――
・複合条件の否定はド・モルガンの法則で考える
・while文の条件式が常に真になる場合は注意!
・2分探索法の流れ図
・クラスStackのインスタンスを二つ作る
――――――――――――――――――――
■第3章 基本例題
■■3.1 成績評価を行う
■■3.2 1からNまでの整数の総和を求める
■■3.3 配列内に格納されているある数値を求める
■■3.4 二つの配列を連結する
■■3.5 配列の要素の並びを逆順にする
■■3.6 配列の要素の値を別の配列の要素番号に使用する
■■3.7 二つの正の整数の最大公約数を求める
■■3.8 k番目のデータまでを並べ替える
■■3.9 リスト要素を探索する
■■3.10 二次元配列からデータを探索する
■■3.11 プログラム実行途中の配列の内容を考える
■■3.12 数字文字列を数値に変換する
■■3.13 10進整数を8桁の2進数に変換する
■■3.14 ビット演算の結果を表示する
■■3.15 再帰関数の戻り値を求める
COLUMN――――――――――――――――――――
・if文の構文を確認しておこう!
・変数の初期値に注意!
・変数aの初期値として-1を設定する方法もある?!
・二つの配列を一つにする処理
・問われている処理のみに着目する?!
・「配列の領域外を参照する」ってどういうこと?
・最大公約数の求め方
・data[1]が最小の値でなかったら…?
・「node+1」で次の要素をアクセスできないの?
・プログラムを「while(true)」の形式に書き換えてみよう!
・二次元配列mdataを別の方法で探索する?!
・基本問題としてよく出題される(?)バブルソート
・16進数の数字文字列を数値に変換する
・数字文字列を数値に変換する応用プログラムに挑戦!
・問題文にある条件「0<n<100を満たす整数」の意味
・配列binの要素数を固定にしない方法
・maskの値を変えないで同じ処理を行う方法
・シフト演算を確認しておこう!
・試験によく出る再帰関数
・二つの正の整数の最大公約数を再帰的に求める
――――――――――――――――――――
■第4章 応用例題
■■4.1 ゲームの得点を計算する
■■4.2 n×nの奇数魔方陣を作成する
■■4.3 1月1日からの経過日数を求める
■■4.4 自然数nまでの素数を求める
■■4.5 ハフマン符号化を使ってデータを圧縮する
■■4.6 整列済の二つの配列を併合する
■■4.7 文字列を圧縮する
■■4.8 ハッシュ法でデータを登録する
■■4.9 配列上にヒープを作成する
■■4.10 スタックを再帰的な手続で操作する
■■4.11 再帰的な手続を用いてn桁の2進数を全て出力する
■■4.12 2分探索木からデータを探索する
■■4.13 逆ポーランド表記法で表された式を計算する
■■4.14 リストを自己再編成探索する
■■4.15 隣接行列で表されたグラフを探索する
■■4.16 シフト演算と加算の繰返しで2進数の乗算を行う
■■4.17 base64を用いてバイナリデータをテキストに変換する
■■4.18 モンテカルロ法を用いて円周率の近似値を求める
■■4.19 近似解を2分法で求める手順を考える
■■4.20 行列の乗算で2年後の格付推移行列を求める
■■4.21 最小二乗法を用いて回帰式を求める
■■4.22 プログラムの検証と改良
■■4.23 プログラムのテストケース
■■4.24 デシジョンツリーを用いた意思決定
■■4.25 ゲーム木の探索
COLUMN――――――――――――――――――――
・関数numを使うと効率が悪い?
・魔方陣の縦・横・対角線に並んだ数の合計値
・ハフマン符号の問題では圧縮率が問われる?
・番兵を用いた併合(マージ)
・プログラムの解読法
・チェーン方式の処理は「リスト処理」!
・ヒープの性質を使った整列法がヒープソートだ!
・条件式が真のときの処理を記述しなくていいの?
・手続testからbinaryNumber(2)として呼び出したらどうなる?
・関数lookupを再帰版に書き換えてみる
・通常の式を逆ポーランド表記にしてみる
・リストの自己再編成は二つの操作から成る!
・2分木を幅優先探索してみる
・処理手順(2)の処理をプログラムで書いてみよう!
・(x, y)が四分円内にあるか否かを距離で判定する?
・推移行列を用いて雨の2日後が晴れである確率を求めてみる
・最小二乗法って難しい?!
・時間効率性からみた最適化
・判定条件網羅(分岐網羅)
・期待値原理を用いた意思決定
・ゲーム木のミニマックス探索
・原始モンテカルロ法
――――――――――――――――――――
■第5章 サンプル問題
■■5.1 サンプル問題1
■■5.2 サンプル問題2
COLUMN――――――――――――――――――――
・新たな要素をリストの先頭に追加するプログラム
・ビットの並びを逆にするもう一つの方法
・深さ優先探索(先行順,中間順,後行順)
・不具合のある2分探索プログラム
――――――――――――――――――――