基本概念:
数据:数据是信息的载体,是计算机程序加工的原料
数据元素:是数据的基本单位,也称元素、结点。
数据结构:是数据之间的相互关系,是数据的组织形式,包括了
数据元素之间的逻辑关系(即 逻辑结构),是独立于计算机的;
数据元素及其关系在计算机存储器的表示为存储结构,是逻辑结构的计算机语言实现;
数据的运算即对数据施加的操作。
我们常常把数据的逻辑结构简称为数据结构,一般分为两大类:
线性结构:只有一个开始结点和一个终端结点,并且所有结点最多只能有一个直接前驱结点和一个直接后继结点。
非线性结构:一个结点可能有多个直接前驱和直接后继。
数据的存储结构可以用以下四种基本的存储方法得到:
顺序存储:把逻辑上相邻的结点存储在物理位置上相邻的存储单元里,由此得到的存储为顺序存储结构,通常是借助于数组来描述的。
链接存储:不要求逻辑相邻的结点物理位置也相邻,逻辑关系是由附加的指针字段来表示的
索引存储:在存储结点信息的同时还建立附加的索引表,索引表中的每一项成为索引项,一般形式为(关键字,地址),关键字是唯一标识一个结点的数据项。
散列存储:基本思想是根据结点的关键字直接计算出该结点的存储地址。
我们常常将同一逻辑结构的不同存储结构用不同的数据结构名称来标识,例如线性表是一种逻辑结构,若采用顺序方法存储称为顺序表,采用链接方法存储称为链表,采用散列方法存储称为链表。
在给定了数据的逻辑结构和存储结构之后,按定义的运算集合及其运算性质的不同,也可能导致完全不同的数据结构。例如,若对线性表上的插入 删除运算限制在一端进行,则称之为栈;若对插入限制在表的一端进行,删除限制在表的另一端进行则称为队列。
更进一步,若线性表采用顺序表或链表作为存储结构,对插入和删除做了上述限制 可分别得到顺序栈或链栈,顺序队列或链队列。
受限:表示对结点的操作受限制