数据结构学习之基本概念
一、数据结构的概念
早期人们都把计算急理解为数值计算的工具。可现实中,我们更多的不是解决数值计算的问题,而是需要一些更为科学有效的手段(比如表、树和图等数据
结构)的帮助,才能够更好的处理问题。所以数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科。
二、基本概念和术语
说到数据结构得先知道什么是数据。
1、数据
数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。数据不仅仅包括整型、实型等数值类型,
还包括字符及声音、图像、视频等非数值类型。
2、数据元素
数据元素是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。比如,在人类中,人就是数据元素。
3、数据项
一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。比如人这样的数据元素,可以有眼,鼻,耳这些数据项。
4、数据对象
数据对象是性质相同的数据元素的集合,是数据的子集。而性质相同是指数据元素具有相同数量和类型的数据项。
三、逻辑结构与物理结构
1、逻辑结构
逻辑结构是指数据对象中数据元素之间的相互关系。主要分为集合结构、线性结构、树形结构和图形结构。
2、物理结构
物理结构是指数据的逻辑结构在计算机中测存储形式。主要有两种:顺序存储和链式存储。
(1)顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系一致的。如下图所示:
(2)链式存储结构:是指把数据元素存放在任意的存储单元中,这组存储单元可以是连续的,也可以是不连续的。如下图所示:
四、抽象数据类型
1、数据类型:
数据类型是指依据性质相同的值的集合及定义在此集合上的一些操作的总称。比如在C语言中,按照取值的不同,数据类型可以分为两类:
(1)原子类型:是不可以在分解的基本类型,包括整型,实型,字符型等。
(2)结构类型:由若干个类型组合而成,是可以在分解的。例如,整形数组是由若干整型数据组成的。
2、抽象数据类型
抽象数据类型是指一个数学模型及定义在该模型上的一组操作。抽象数据类型的定义取决于他的一组逻辑特征,而与其在计算机内的如何表示和实现无关。
事实上,抽象数据类型体现了程序设计中问题分解、抽象和信息隐藏的特征。下面给出抽象数据类型的标准格式: