リスト構造
・リンクリスト
・連結リスト
・リスト

アドレスは配列と違い、並んでいない!

〇配列の場合
符号なし 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のデータいらなくなっちゃた。削除の手順を考えてみて 
月曜:レコード型の説明もするよ
  • game-engineer/classes/2022/game-programing-1/first-term/9/9-02-3.txt
  • 最終更新: 3年前
  • by root