例1:有一个学生表,这个表中的数据元素是学生记录,每个数据元素由4个数据项组成。讨论其存储结构学生表表1.1学号姓名性别班号1男张斌9901女8刘丽9902女34李英9901男20陈华9902男12王奇9901男26董强99025王萍人女9901
6 学号 姓名 性别 班号 1 张斌 男 9901 8 刘丽 女 9902 34 李英 女 9901 20 陈华 男 9902 12 王奇 男 9901 26 董强 男 9902 5 王萍 女 9901 表1.1 学生表 例1:有一个学生表,这个表中的数据元素是学 生记录,每个数据元素由4个数据项组成。讨论 其存储结构
表中的记录顺序反映了数据元素之间的逻辑关系,用学号标识每个学生记录,这种逻辑关系可以表示为:<1,8>,<8,34>,<34,20>,<20,12><12,26>,<26,5>其中,尖括号<a;,ai+1>表示(序偶)元素a,和ai+1之间是相邻的,即a,在ai+1之前,ai+1在a之后
7 表中的记录顺序反映了数据元素之间的逻辑关 系, 用学号标识每个学生记录,这种逻辑关系可 以表示为: <1,8>,<8,34>,<34,20>,<20,12>, <12,26>,<26,5> 其中,尖括号<ai ,ai+1>表示(序偶) 元素ai和ai+1之间是相邻的,即ai在ai+1之前,ai+1 在ai之后
这些数据在计算机存储器中的存储方式就是存储结构可以采用C/C++语言中的结构体数组和链表两种方式实现其存储结构
8 这些数据在计算机存储器中的存储方式 就是存储结构。 可以采用C/C++语言中的结构体数组和 链表两种方式实现其存储结构
存放学生表的结构体数组Stud定义为:struct iint no;/*存储学号*//*存储姓名*/charname[8];/*存储性别*/char sex[2];/*存储班号*/char class[4];}Stud[7]={1,“张斌”“男”"9901"},...[5"王萍","女""9901"3};
9 存放学生表的结构体数组Stud定义为: struct { int no; /*存储学号*/ char name[8]; /*存储姓名*/ char sex[2]; /*存储性别*/ char class[4]; /*存储班号*/ } Stud[7]={{1,“张斌”,“男”,“9901”},., {5,"王萍","女","9901"}};
结构体数组Stud各元素在内存中顺序存放,即第i(0<i<6)个学生对应的元素Stud[il存放在第i+1个学生对应的元素Stud[i+1]之前Stud[i+1|正好在Studi之后StudloStudja张斌男5王萍女99019901Stud数组起始地址10
10 结构体数组Stud各元素在内存中顺序存 放,即第i(0≤i≤6)个学生对应的元素Stud[i]存 放在第i+1个学生对应的元素Stud[i+1]之前, Stud[i+1]正好在Stud[i]之后。 1 张斌 男 9901 . 5 王萍 女 9901 Stud[0] Stud[6] Stud数组起始地址