问题
- 数据结构的作用是什么?
数据结构的作用就是用来表示我们的数据/信息的。
- 什么是数据结构?
唐发根版数据结构中是这么说的:数据结构是一个二元组 Data-Structure=(D,R),其中,D是数据元素的有限集合,R是D上关系的集合。
- “关系”是指数据元素之间存在的逻辑关系,也称为数据的逻辑结构.
- 通常把数据结构在计算机中的表示(或者称映像)称为数据的物理结构。物理结构又称为存储结构,包括数据元素的表示及关系的表示两个方面。 数据结构 = 结构定义 + 结构操作
数据结构初识
根据数据元素之间具有的不同关系,可以将数据的逻辑结构主要分为 集合、线性结构与非线性结构几大类。
- 集合结构: 数据元素仅存在“同属于一个集合”的关系
- 线性结构: 数据元素之间的逻辑关系是“一对一”的关系,即除了第1个数据元素和最后那个数据元素之外,其他每一个数据元素有且仅有一个直接前驱元素,及有且仅有一个直接后继元素,这就是说,结构中的各个数据元素依次排列在一个线性序列中。
- 非线性结构: 一般情况下,各个数据元素不再保持在一个线性序列中,每个数据元素可能与零个或多个其他数据元素发生联系。
- 层次结构:称为树型结构,在这种结构中,数据元素之间的逻辑关系一般都是“一对多”或者“多对一”的,即每个数据元素有且仅有一个直接前驱元素,但可以有多个直接后继元素。
- 网状结构:数据元素之间存在的一般是“多对多”的关系,即每个数据元素可以有多个直接前驱元素,也可以有多个直接后继元素。网状结构也称为图形结构,简称图。
一种逻辑结构通过映像便可以得到它的存储结构。由于映像的方式不同,同一种逻结构可以映像成不同的存储结构。反之,在很大程度上,数据的存储结构要能够正确反映数据元素之间具有的逻辑结构。
- 顺序映像:顺序存储结构
- 非顺序映像:非顺序存储结构,包括链式存储结构(简称链表)、索引结构和散列结构
对于线性表,在计算机内部是可以有多种存储结构,除了索引存储结构和散列存储结构外,采用较多的是顺序存储结构和链式存储结构。
- 顺序存储结构:在计算机存储器中用一片地址连续的存储单元(存储单元直接不能间隔)依次存放数据元素的信息,数据元素之间的逻辑关系通过数据元素的存储地址来直接反映。在这种存储结构中,逻辑上相邻的数据元素在物理地址上也必然是相邻的。
优点:简单,易理解,并且实际占用最少的存储空间。
缺点:需要占用一片地址连续的整块空间,并且存储分配要事先进行;另外,对于一些操作的时间效率较低
- 链式存储结构:是指在计算机存储器中用一片地址任意的(连续的或者不连续的)存储单元依次存放数据元素的信息,一般称为每个数据元素占用的若干存储单元的组合为一个链结点。 链式存储结构也称链表结构,简称链表。
优点: 存储空间不必事先分配,在需要存储空间时可以临时申请,不会造成存储空间的浪费。像插入和删除这样操作的时间效率采用链式存储结构远比采用顺序存储结构要高。
缺点:不仅数据元素本身的数据信息需要占用存储空间,而且指针也有存储空间的开销,从这一点来说,链式存储结构要比顺序存储结构的空间开销大。
在设计某个操作时,首先要搞清楚数据元素之间具有神秘逻辑结构,然后采用合适的存储结构来具体实现这种操作。同一种操作在不同存储结构中的实现方法可以不同,有的则完全依赖于所采用的存储结构。 数据结构课程所要研究的主要内容可以简要地归纳为以下3个方面:
- 研究数据元素之间固有的客观联系(逻辑结构)
- 研究数据在计算机内部的存储方法(存储结构)
- 研究在数据的各种结构(逻辑的和物理的)基础上如何对数据实施有效的操作或处理(算法)。