数据结构——001数据结构的概念及分类


今天,正式开启深入学习数据结构之旅。


1.数据、数据元素和数据对象

数据是信息的载体,是对客观事物的符号表示,是所能输入到计算机中并被计算机程序识别和处理的符号的集合

数据元素是数据的基本单位。在计算机程序中数据元素常作为一个整体进行考虑和处理。数据元素又可以称为元素结点记录

一个数据元素可以由若干个数据项组成。数据项还可以区分为组项和基本项,组项可以由更小的组项和基本项构成,而基本项则是具有独立含义的最小标志单位。

数据元素的集合构成一个数据对象,它是针对某种特定的应用。数据结构一书中所说的数据对象不是面向对象系统中所指的数据对象,后者还需要考虑对象所包括的操作。

2.数据结构

(1)数据结构是指某一数据对象中所有数据元素间的关系。完整定义为:数据结构 = {D,R},D表示某一数据对象,R表示该集合中所有数据元素间关系的有限集合

(2)数据结构是数据元素间的逻辑关系,即数据的逻辑结构。它是具体问题的抽象模型,与数据的存储无关。

(3)数据的存储结构是数据的逻辑结构在计算机内的表示,它依赖于数据的逻辑结构。

(4)作用于数据结构上的操作是讨论数据结构的另一个重要方面,操作的实现依赖于相应的存储结构。

3.数据逻辑结构的分类

线性结构、集合结构、树形结构、图结构
它们中数据元素之间的关系分别是一对一、空、一对多、多对多。集合结构的实现往往依赖于其他逻辑结构的存储表示。

4.数据存储结构的分类

顺序存储、链式存储、索引存储、散列存储
后两者在外存中,索引存储通过建立索引表来组织所有数据元素,散列存储是通过散列函数直接把数据记录的关键码映射为该元素的存放地址。

5.数据类型与抽象数据类型(ADT)

数据类型是一个值的集合和定义在这个值集合上的一组操作的总称。包括基本数据类型和构造数据类型

基本数据类型可以看做是计算机中已经实现的数据结构。例如C语言中的字符型(char)、整形(int)、浮点型(float)、双精度型(double)、无值(void),可以直接使用由它们定义的变量和相应的操作。

构造数据类型由基本数据类型或构造数据类型组成,在C语言中用typedef struct定义。

数据类型和数据结构的共同点在于它们的抽象性

数据类型和数据结构之间的区别在于数据结构本身是一种数据组织形式和使用形式,通过把它定义成数据类型才能在计算机上使用。从这个意义上看,数据类型是从编程者使用的角度可由计算机实现的数据结构。

数据类型本身不能参与运算,必须定义属于某种数据类型的变量,使用这些变量才能参与运算。

抽象数据类型ADT)是一种构造数据类型。特征:信息隐蔽、数据封装、使用与实现分离。


上述参考自:数据结构精讲与习题详解:考研辅导与答疑解惑/殷人昆编著.–北京:清华大学出版社,2012.10


猜你喜欢

转载自blog.csdn.net/codeIsGood/article/details/83756969