データ構造について
圧倒的に情報系の知識が不足しているのでITパスポートと基本情報の取得を目指すことにしました。
勉強した内容をめもっておく。
配列
- 同じ形式のデータが連続しているデータ構造。
- 主記憶装置の連続した領域に格納される。
- 配列名と何番目に存在しているデータなのかで指定する。
- 途中に要素を挿入するには元の要素をずらすので、時間がかかる
リスト
- いくつかのデータを線状につなげたデータ構造。
- データがつながって記録されるのではなく、要素の格納場所が入ったポインタで、論理的につながっている。
- よって、主記憶装置にとっちらかって保存される。
- データの追加や変更を行う際はポインタ部分の情報を変える。
- 特定のデータにアクセスするにはリストの先頭からたどる必要があり、時間がかかる。
キュー
- FIFO(First In First Out:先入れ先出し)のデータ構造。
- 先に入ってきたデータを先に出すという考え方。
- 新しい要素は末尾に追加され、先頭の要素から取り出されていく。
- ロケット鉛筆みたいなイメージ。
スタック
- LIFO(Last In First Out:後入れ先出し)のデータ構造。
- 後に入ってきたデータを先に処理する。
- スタックにデータを追加する操作をpush、とりだす操作をpopという。
- プログラムからプログラムを呼び出すときに、制御情報(どこへ戻ればいいのか)を管理するために使うらしい。
木
- データに階層関係があるときに利用されるデータ構造。
- データに相当するものを節という。
- データの関係で上にくるものを親、下に来るものを子という。
- 一番上の階層を根、一番下の階層を葉という。