リスト構造
・リンクリスト
・連結リスト
・リスト
アドレスは配列と違い、並んでいない!
〇配列の場合
符号なし 8bit整数
unsigned char arr[5] = {1, 2, 3, 4, 5};(固定長のデータ構造)
Addr Addr var val binary size
0x0003~0x000A arr[0] ← 1 00000001 (8bit 1byte)
0x000B~0x0012 arr[1] ← 2 00000010 (8bit 1byte)
0x0013~0x001A arr[2] ← 3 00000011 (8bit 1byte)
0x001B~0x0022 arr[3] ← 4 00000100 (8bit 1byte)
0x0023~0x002A arr[4] ← 5 00000101 (8bit 1byte)
〇リストの場合
h→1→3→5→7→NULL
.next にはそのリスト要素の次の要素のアドレスが格納
.data にはそのリスト要素の値が格納
データを、その都度作ってつなげてゆく(可変長のデータ構造)
001
[ 1 ]→NULL
h.next = 001
001.data = 1
001
h→[ 1 ]→NULL
リスト要素をもう一個作る(3のデータを作ってつなげる)
A05
[ 3 ]→NULL
001.next = A05
A05.data = 3
001 A05
h→[ 1 ]→[ 3 ]→NULL
001 A05 013 CB8
h→[ 1 ]→[ 3 ]→[ 5 ]→[ 7 ]→NULL
課題を出します。
⓪アドレスが代入できる変数 addrがあります。
こいつを使って、headから、全部の要素をたどる手順を考えてみて
addr←head.next
addr.data (1だよね)
①3と5の間に↓こいつを挿入する手順を考えてみて
021
[ 4 ]→NULL
②①のあと、5のデータいらなくなっちゃた。削除の手順を考えてみて
月曜:レコード型の説明もするよ