3.数据元素(记录) 数据元素是由若干项、组合项构成的数据单位,是在某 十问题中作为整体进行考虑和处理的基本单位。数据元素有 担和值之分,表中项名的集合,也即表头部分就是数据元素 的类型;而一个学生对应的一行数据就是一个数据元素的值, 表中全体学生即为数据元素的集合 4.关键码 关键码是数据元素(记录)中某个项或组合项的值,用 它可以标识一个数据元素(记录)。能唯一确定一个数据元 素(记录)的关键码,称为主关键码;而不能唯一确定一个 数据元素(记录)的关键码,称为次关键码。表中“学号” 即可看成主关键码,“姓名”则应视为次关键码,因可能有 同名同姓的学生 2021年1月21日 数据结构讲义
2021年1月21日 数据结构讲义 6 3.数据元素(记录) 数据元素是由若干项、组合项构成的数据单位,是在某 一问题中作为整体进行考虑和处理的基本单位。数据元素有 型和值之分,表中项名的集合,也即表头部分就是数据元素 的类型;而一个学生对应的一行数据就是一个数据元素的值, 表中全体学生即为数据元素的集合。 4.关键码 关键码是数据元素(记录)中某个项或组合项的值,用 它可以标识一个数据元素(记录)。能唯一确定一个数据元 素(记录)的关键码,称为主关键码;而不能唯一确定一个 数据元素(记录)的关键码,称为次关键码。表中“学号” 即可看成主关键码, “姓名”则应视为次关键码,因可能有 同名同姓的学生
5.查找表 是由具有同一类型(属性)的数据元素(记录)组成的 集合。分为静态查找表和动态查找表两类。静态查找表:仅 对查找表进行查找操作,而不能改变的表:动态查找表:对 查找表除进行查找操作外,可能还要进行向表中插入数据元 素,或删除表中数据元素的表。 6.查找 按给定的某个值kx,在查找表中查找关键码为给定值kx 的数据元素(记录) 关键码是主关键码时:由于主关键码唯一,所以查找结 果也是唯一的,一旦找到,查找成功,结束查找过程,并给 出找到的数据元素(记录)的信息,或指示该数据元素(记 录)的位置。要是整个表检测完,还没有找到,则查找失败, 此时,查找结果应给出一个“空”记录或“空”指针。关键 码是次关键码时:需要査遍表中所有数据元素(记录),或 在可以肯定查找失败时,才能结束查找过程。 2021年1月21日 数据结构讲义
2021年1月21日 数据结构讲义 7 5.查找表 是由具有同一类型(属性)的数据元素(记录)组成的 集合。分为静态查找表和动态查找表两类。静态查找表:仅 对查找表进行查找操作,而不能改变的表;动态查找表:对 查找表除进行查找操作外,可能还要进行向表中插入数据元 素,或删除表中数据元素的表。 6.查找 按给定的某个值kx,在查找表中查找关键码为给定值kx 的数据元素(记录)。 关键码是主关键码时:由于主关键码唯一,所以查找结 果也是唯一的,一旦找到,查找成功,结束查找过程,并给 出找到的数据元素(记录)的信息,或指示该数据元素(记 录)的位置。要是整个表检测完,还没有找到,则查找失败, 此时,查找结果应给出一个“空”记录或“空”指针。关键 码是次关键码时:需要查遍表中所有数据元素(记录),或 在可以肯定查找失败时,才能结束查找过程
7.数据元素类型说明 在手工绘制表格时,总是根据有多少数据项,每个数 据项应留多大宽度来确定表的结构,即表头的定义。然后, 再根据需要的行数,画出表来。在计算机中存储的表与手 工绘制的类似,需要定义表的结构,并根据表的大小为表 分配存储单元。以图9.1为例,用C语言的结构类型描述 之 /*出生日期类型定义米/ typedef struct f char year l5 /米年:用字符型 小, 14个字符* char month[31 /*月:字符型,宽度为2*/ char date 3 /*日:字符型,宽度为2*/ BIrthdAte: 2021年1月21日 数据结构讲义
2021年1月21日 数据结构讲义 8 7.数据元素类型说明 在手工绘制表格时,总是根据有多少数据项,每个数 据项应留多大宽度来确定表的结构,即表头的定义。然后, 再根据需要的行数,画出表来。在计算机中存储的表与手 工绘制的类似,需要定义表的结构,并根据表的大小为表 分配存储单元。以图 9.1为例,用C语言的结构类型描述 之。 /* 出生日期类型定义 */ typedef struct { char year[5]; /* 年:用字符型表示,宽度为4个字符 */ char month[3]; /* 月:字符型,宽度为 2 */ char date[3]; /* 日:字符型,宽度为 2 */ }BirthDate;
/*数据元素类型定义米 typedef struct char number [7 *学号:字符型,宽度为6 char name *姓名:字符型,宽度为8*/ char sex31 /*性别:字符型,宽度为2* BirthDate birthdate /*出生日期:构造类型,由该类型的宽度确定 char comefrom[21];牌来源:字符型,宽度为20*/ int results: /*成绩:整型,宽度由“程序设计C语言工具软件”决定 y Elem Type 2021年1月21日 数据结构讲义
2021年1月21日 数据结构讲义 9 /* 数据元素类型定义 */ typedef struct { char number[7]; /* 学号:字符型,宽度为6 */ char name[9]; /* 姓名:字符型,宽度为8 */ char sex[3]; /* 性别:字符型,宽度为2 */ BirthDate birthdate; /* 出生日期:构造类型,由该类型的宽度确定 */ char comefrom[21]; /* 来源:字符型,宽度为20 */ int results; /* 成绩:整型,宽度由 “程序设计C语言工具软件”决定 */ } ElemType;
以上定义的数据元素类型,相当于手工绘制的表头。 要存储学生的信息,还需要分配一定的存储单元,即给出 表长度。可以用数组分配,即顺序存储结构;也可以用链 式存储结构实现动态分配。 本章以后讨论中,涉及的关键码类型和数据元素类型 统一说明如下: typedef struct KeyType ley: /*关键码字段,可以是整型、字符串型、构造 类型等* /*其它字段* y ElemType; 2021年1月21日 数据结构讲义 10
2021年1月21日 数据结构讲义 10 以上定义的数据元素类型,相当于手工绘制的表头。 要存储学生的信息,还需要分配一定的存储单元,即给出 表长度。可以用数组分配,即顺序存储结构;也可以用链 式存储结构实现动态分配。 本章以后讨论中,涉及的关键码类型和数据元素类型 统一说明如下: typedef struct { KeyType key; /* 关键码字段,可以是整型、字符串型、构造 类型等*/ …… /* 其它字段 */ } ElemType;