数据结构主要学习用计算机实现数据组织和数据处理的方法;随着计算机应用领域的不断扩大,无论设计系统软件还是应用软件都会用到各种复杂的数据结构。
一个好的程序无非是选择一个合理的数据结构和好的算法,而好的算法的选择很大程度上取决于描述实际问题所采用的数据结构,所以想编写出好的程序必须扎实的掌握数据结构。
数据结构的定义
数据人们利用文字符号、数据符号以及其他规定的符号对现实世界的事物及活动所做的抽象描述。从计算机的角度看,数据是所有能被输入到计算机中,并能被计算机处理的符号的集合。数据元素: 数据集合中的一个“个体”,是数据的基本单位;数据结构: 是指数据以及相互之间的联系,可以看做是相互之间存在某种特定关系的数据元素的集合,因此可以把数据结构看成是带结构的数据元素的集合。数据结构包括以下几个方面: 数据的逻辑结构 是指数据元素之间的逻辑关系。比如一个表中;的记录顺序反映了数据元素之间的逻辑关系,一个数组中元素的排列顺序也是数据元素之间的逻辑关系。
数据的存储结构(物理结构)
数据元素及其逻辑关系在计算机存储器中的存储方式,一般只在高级语言的层次上来讨论存储结构。不同的逻辑结构有不同的存储结构
数据的运算
施加在该数据上的操作,是定义在数据的逻辑结构之上的,每种逻辑结构都有一组相应的运算。例如最常用的增删改查、更新、排序等。数据的运算最终需在对应的存储结构中用算法实现。
一组数据,数据元素及其录顺序是一定的,但是可以用不同的逻辑结构表示,这样就有着不同的存储结构,对应着不同的运算算法。以上都属于数据结构的范畴; 为了更确切的描述一种数据结构,通常采用二元组表示:
B = (D, R)
其中,B是一种数据结构,它由数据元素的集合D,和D上二元关系的集合R所组成:
D = {di|1≤i≤n,n≥0} n为D中结点个数
R = {rj|1≤j≤m,m≥0} m为R中关系的个数
逻辑结构类型
在不会产生混淆的前提下,常常将数据的逻辑结构简称为数据结构。数据的逻辑结构主要有一下几类:
①. 集合
指数据元素之间除了“同属于一个集合”的关系外,别无其他关系
②. 线性结构
指该结构中的节点之间存在一对一的关系。特点是除了开始结点和终端结点,其余结点都有且仅有一个直接前驱,有且仅有一个直接后继。典型的例子就是“顺序表”
③. 树形结构
指该结构中的结点之间存在一对多的关系,其特点是每个结点最多只有一个直接前驱,但可以有多个直接后继,可以有多个终端结点。典型的树形结构**“二叉树”**
④. 图形结构
该结构中的结点之间存在多对多的关系。特点是每个结点的直接前驱和直接后继的个数都可以是任意的。因此,可能没有开始节点和终端结点,也可能有多个开始节点和终端结点。
树形结构和图形结构统称为非线性结构,该结构中的结点之间存在一对多或者多对多的关系