Download presentation
Presentation is loading. Please wait.
1
アルゴリズムとデータ構造 補足資料7-1 「メモリでの『構造体の配列』」
横浜国立大学 理工学部 数物・電子情報系学科 富井尚志
2
struct item{ int key; char name[7]; } ; main() { x x.key
アドレス(32bit) 中身(1記憶単位は8bit) … 0x 40ea 0800 0x 40ea 0801 0x 40ea 0802 0x 40ea 0803 0x 40ea 0804 0x 40ea 0805 0x 40ea 0806 0x 40ea 0807 0x 40ea 0808 0x 40ea 0809 0x 40ea 080a 0x 40ea 080b 0x 40ea 080c 0x 40ea 080d 0x 40ea 080e 0x 40ea 080f 0x 40ea 0810 0x 40ea 0811 0x 40ea 0812 0x 40ea 0813 0x 40ea 0814 0x 40ea 0815 0x 40ea 0816 struct item{ int key; char name[7]; } ; main() { struct item x; x.key = 1536; x.name[0]=‘Y’; x.name[1]=‘N’; x.name[2]=‘U’; x.name[3]=‘\0’; … } x x.key x.name x.name[0] x.name[1] x.name[2] x.name[3] x.name[4] x.name[5] x.name[7]
3
struct item{ int key; char name[7]; } ; main() { x x.key
struct item x; x.key = 1536; x.name[0]=‘Y’; x.name[1]=‘N’; x.name[2]=‘U’; x.name[3]=‘\0’; … } x x.key x.name x.name[0] x.name[1] x.name[2] x.name[3] x.name[4] x.name[5] x.name[7]
4
struct item{ int key; char name[7]; } ; main() { x struct item x;
x.key = 1536; x.name[0]=‘Y’; x.name[1]=‘N’; x.name[2]=‘U’; x.name[3]=‘\0’; … } x x.key 1536 x.name x.name[0] Y x.name[1] N x.name[2] U \0 x.name[3] x.name[4] x.name[5] x.name[7]
5
struct item{ int key; char name[7]; } ; main() { struct item x; x.key = 1536; x.name[0]=‘Y’; x.name[1]=‘N’; x.name[2]=‘U’; x.name[3]=‘\0’; … } x x.key 1536 x.name YNU
6
struct item{ int key; char name[7]; } ; main() { struct item a[5];
アドレス(32bit) 中身(1記憶単位は8bit) … 0x 40ea 0800 0x 40ea 0801 0x 40ea 0802 0x 40ea 0803 0x 40ea 0804 0x 40ea 0805 0x 40ea 0806 0x 40ea 0807 0x 40ea 0808 0x 40ea 0809 0x 40ea 080a 0x 40ea 080b 0x 40ea 080c 0x 40ea 080d 0x 40ea 080e 0x 40ea 080f 0x 40ea 0810 0x 40ea 0811 0x 40ea 0812 0x 40ea 0813 0x 40ea 0814 0x 40ea 0815 0x 40ea 0816 struct item{ int key; char name[7]; } ; main() { struct item a[5]; a[0].key = 1536; a[0].name[0]=‘Y’; a[0].name[1]=‘N’; a[0].name[2]=‘U’; a[0].name[3]=‘\0’; a[1].key = 256; a[1].name[0]=‘M’; a[1].name[1]=‘I’; a[1].name[2]=‘T’; a[1].name[3]=‘\0’; … } a[0] a[0].key a[0].name a[0].name[0] a[0]. name[1] a[0]. name[2] a[0]. name[3] a[0]. name[4] a[0]. name[5] a[0]. name[7] a[1] a[1].key a[1].name a[1].name[0] a[1]. name[1] a[1]. name[2] a[1]. name[3] a[1]. name[4] a[1]. name[5] a[1]. name[7]
7
struct item{ int key; char name[7]; } ; main() { struct item a[5]; a[0].key = 1536; a[0].name[0]=‘Y’; a[0].name[1]=‘N’; a[0].name[2]=‘U’; a[0].name[3]=‘\0’; a[1].key = 256; a[1].name[0]=‘M’; a[1].name[1]=‘I’; a[1].name[2]=‘T’; a[1].name[3]=‘\0’; … } a[0] a[0].key 1536 a[0]. name YNU a[1] a[1].key 256 a[1]. name MIT a[2] a[2].key 2049 a[2]. name UCLA a[3] a[3].key 87 a[3]. name TU/e a[4] a[4].key 1562 a[4]. name BYU
8
a[0] a[0] a[0].key 1536 a[0].key 87 a[0]. name YNU a[0]. name TU/e a[1] a[1] a[1].key 256 a[1].key 256 a[1]. name MIT a[1]. name MIT a[2] a[2] a[2].key 2049 a[2].key 1536 sort(a,5) a[2]. name UCLA a[2]. name YNU a[3] a[3] a[3].key 87 a[3].key 1562 a[3]. name TU/e a[3]. name BYU a[4] a[4] a[4].key 1562 a[4].key 2049 a[4]. name BYU a[4]. name UCLA 整列(sort)前 整列(sort)後
9
a[0] a[1] a[2] a[3] a[4] a[0].key 1536 a[1].key 256 a[2].key 2049 a[3].key 87 a[4].key 1562 a[0]. name YNU a[1]. name MIT a[2]. name UCLA a[3]. name TU/e a[4]. name BYU sort(a,5) a[0] a[1] a[2] a[3] a[4] a[0].key 87 a[1].key 256 a[2].key 1536 a[3].key 1562 a[4].key 2049 a[0]. name TU/e a[1]. name MIT a[2]. name YNU a[3]. name BYU a[4]. name UCLA
Similar presentations
© 2024 slidesplayer.net Inc.
All rights reserved.