数据的逻辑结构(参考《数据结构(C语言版),清华大学出版社,严蔚敏 吴伟民)
数据结构
生活中我们要用到各种算法来处理一些问题,而如何用算法实现呢?
数据结构就成了描述算法必不可少的工具之一。
数据结构是相互之间存在一种或多种关系的集合
仅从关系的复杂情况来说,我们可以对于大部分数据的结构给予这样的分类
- 集合:数据元素除了“同属于一个集合“以外没有其他关系
- 线性结构:数据元素之间存在一对一的关系,举个🌰,比如站成一排的小人,一个接着一个。
- 树形结构:数据元素之间存在一对多的关系,比如细胞的分裂,一个细胞分成两个,分裂出的那两个细胞分别继续分裂,每个细胞后面都对应两个元素,是典型的树形结构。
- 图状结构或网状结构:数据元素之间存在多对多的关系,就像一个城市的交通网,楼与楼之间的路线十分复杂,可以有很多种选择,你从你的家出发可以到达医院,也可以到达学校,而从很多地方也可以到达你的家,是典型的网状结构。
数据结构的基本概念
- 数据:对客观事物的符号化表示,在计算机中通过一些代码映射出现实生活的事物,比如在学校的教务系统中,一个学号代表一个学生,计算机无法处理运算一个活人,但一个人的性别,年龄,学号等都可以处理,这些都可以作为数据,换一种说法,计算机可以处理的所有内容都是数据。数据往往映射现实生活的各种情况以及事物。
- 数据元素:是数据的基本单位,同样的以教务系统为例,学生与学生之间的关系可以用线性结构来储存成一个表,虽然在现实生活中这种关系并不存在,但是我们可以在计算机中通过这种关系进行存储从而方便增删查找和维护,这个时候,每个学生的信息都作为一个整体有序的存储在教务系统中,我们称每个学生我为数据元素。
- 数据项:数据不可分割的最小单位,比如学生的姓名、学号等在教务系统中是数据项,但是我们要注意,数据结构一般来表示数据元素之间的关系,我们将数据项组成数据元素,之后来定义数据结构。
- 数据对象:性质相同的数据元素的集合,是数据的一个子集,比如三年八班的学生作为全校师生的一个子集,在教务系统中,经常要以性别、班级、年级等作为标准来对一类的数据对象进行整体的操作。
- 数据结构:相互之间存在一种或多种关系的集合。例如教务系统中的学生,一般来讲是以线性关系来存储的,而导航地图一般而言是网状关系。
数据结构的形式定义
二元组 Data_Structure=(D,S)
D:是数据的有限集,例如教务系统中的所有学生。
S:是D上关系的有限集,例如教务系统中学生与学生之间用线性关系存储。
如果该校有10000名学生,则有如下定义
Student=(D,S)
其中:
D={D1,D2,D3 … D9998,D9999,D10000}
S={P}
P={〈Dn,D(n+1)〉,1≤n≤9999}
网友评论