データ構造とは?
- データ構造 : 素材であるデータをどのように扱うか ゴロだしのデータを扱うのは非効率
⇨ 用途に応じてデータの格納方法を工夫
アルゴリズムとデータ構造の違い
- アルゴリズム ⇨ 作業手順
- データ構造 ⇨ データ(素材をどう扱うか?)
データ構造の基本
- キュー : 古い方からデータを処理し、新しい情報は末尾へ追加
- 構造体 : 1つのデータに情報を付加
データとは何か?
- 素材であるデータを扱いやすくした仕組み ⇨ データ構造を考える前段階
- データ : 0と1の電気信号のこと CPの中にはメモリIC(集積回路)が何千個もあり、データはその中に保存される
- メモリIC : A0〜A9のピンでデータを保存 電気のON/OFFで、2進数の0と1を表す
- メモリIC = ビルディング
- ビルディングにデータを保存
| ビルディングにデータを保存 |
|---|
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
| 1バイトのデータ |
char chr = 'A',
int apple = 10;
データ構造とポインタの関係
- データ構造はポインタの技術を元に成り立っている
- ビルディングにデータを保存
- 連結リストとポインタ ⇨ データ構造の中で最も基本かつ、ポインタとの関係を理解する上で重要!
配列・連結リストについて
- 配列 : 同じデータ型の要素が大量に並ぶ ⇨ 要素へ瞬時にアクセスできる 番号を指定すればデータを瞬時に得ることができる
- 配列のデメリット : ①メモリ上の連続したスロットを使用 ②要素の追加・削除が面倒
- 連結リスト : データとポインタ 2つでセット
- 連結リストのデメリット : 1個1個要素を辿るので探索に時間がかかる
- 連結リストのメリット : 追加・削除などの変更に柔軟に対応できる
| メリット | デメリット | |
|---|---|---|
| 配列 | 要素へ瞬時にアクセスできる | 追加・削除が面倒 |
| 連結リスト | 追加・削除などの変更に柔軟に対応 | 探索に時間がかかる |
配列は最も基本的なデータ構造 ⇨ メモリの物理的な形そのものだから ビルディングの形がそのまま配列のデータ構造と同じ
参考サイト
【1/4】データ構造の基本を学ぼう!(なぜデータ構造は必要か?)
【2/4】データ構造の基本を学ぼう!(メモリICとビルディング)
【3/4】データ構造の基本を学ぼう!(データ構造とポインタ)
【4/4】データ構造の基本を学ぼう!(配列と連結リスト)