文档介绍:第1章绪论
算法及其描述
什么是数据结构
算法分析
本章小结
数据结构的定义
逻辑结构类型
存储结构类型
数据结构和数据类型
什么是数据结构
数据:是所有能被输入到计算机中,且能被计算机处理的符号的集合。它是计算机操作的对象的总称,也是计算机处理的信息的某种特定的符号表示形式。
数据元素:是数据(集合)中的一个“个体”,是数据的基本单位。
数据结构的定义
例如,200402班为一个学生数据,而其中的“张三”是一个数据元素)。
数据结构:是指数据以及数据元素相互之间的联系。可以看作是相互之间存在着某种特定关系的数据元素的集合。
因此,可时把数据结构看成是带结构的数据元素的集合。
数据结构包括如下几个方面:
(1)数据元素之间的逻辑关系,即数据的逻辑结构。
(2)数据元素及其关系在计算机存储器中的存储方式,即数据的存储结构,也称为数据的物理结构。
(3)施加在该数据上的操作,即数据的运算。
。这个表中的数据元素是学生记录,每个数据元素由四个数据项(即学号、姓别、性别和班号)组成。
学号
姓名
性别
班号
1
张斌
男
9901
8
刘丽
女
9902
34
李英
女
9901
20
陈华
男
9902
12
王奇
男
9901
26
董强
男
9902
5
王萍
女
9901
学生表
该表中的记录顺序反映了数据元素之间的逻辑关系,我们用学号标识每个学生记录,这种逻辑关系可以表示为:
<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++语言中的结构体数组和链表两种方式实现其存储结构。
存放学生表的结构体数组Stud定义为:
struct {
int no; /*存储学号*/
char name[8]; /*存储姓名*/
char sex[2]; /*存储性别*/
char class[4]; /*存储班号*/
} Stud[7]={{1,“张斌”,“男”,“9901”},…,
{5,"王萍","女","9901"}};