欢迎使用CSDN-markdown编辑器

来源:互联网 发布:s7edge淘宝水货哪家好 编辑:程序博客网 时间:2024/06/15 22:40

数据结构的概述

数据结构=数据元素+数据元素之间的关系
数据结构主要包括以下三个方面:
1、逻辑结构
2、存储结构
3、数据的操作
逻辑结构是数据元素“表面”上的结构,比如学生的成绩表、身高表等,这些数据之间没有特殊的关系,只要“按部就班”的呈现出来就好,对顺序等也无特别的要求。而常见的户籍表、职工表等上面的人员关系则有父母、子关系、上下级关系等特殊的关系,以上两种常见的数据结构就是所谓的“逻辑结构”。它的每一个数据元素所在的节点都有相应的前趋和后继,可能有一个,也可能有多个。这是数据的逻辑结构。
数据的逻辑结构主要有两种:
(1)线性结构:每个节点都只有唯一的前趋和后继。比如:栈、队列;
(2)非线性结构:每个节点可能有多个前趋和后继。比如:树、图等。
存储结构则指的是计算机语言对存储元素的节点之间的关系描述,比如:数组中各个节点按顺序依次排列,链表中用指针来指向其它节点等。
数据的四种存储方法:
(1)顺序存储方法:这种存储方法的特点是:逻辑相邻+物理位置相邻。即:数据在表面上具有逻辑相邻(比如成绩表)的关系,在计算机存储数据的过程中,把它们也存储在相邻的物理位置上。通常借助数组来实现;
(2)链接存储方法:这种存储方法的特点是:物理位置不相邻。即无论元素是否具有逻辑相邻的关系,其在内存中的存储位置不一定是相邻的。通常借助指针来实现;
(3)索引存储方法:这种存储方法的特点是:建立附加索引表。即在建立数据节点的同时,还要建立一个索引表,若每个节点在索引表中都有一个索引项,则称之为稠密索引;若一组结点才对应一个索引项,则称之为稀疏索引。其一般形式为:(关键字、地址)。
(4)散列存储方法:这种存储方法的特点是:根据结点的关键字直接计算其存储地址。
数据的操作就是常见的查找、添加、删除、修改等操作。

【例】线性表是一种逻辑结构,若采用顺序方法的存储表示,可称其为顺序表;若采用链式存储方法,则可称其为链表;若采用散列存储方法,则可称为散列表。数据的运算也是数据结构不可分割的一个方面。在给定了数据的逻辑结构和存储结构之后,按定义的运算集合及其运算的性质不同,也可能导致完全不同的数据结构。【例】若对线性表上的插入、删除运算限制在表的一端进行,则该线性表称之为栈;若对插入限制在表的一端进行,而删除限制在表的另一端进行,则该线性表称之为队列。更进一步,若线性表采用顺序表或链表作为存储结构,则对插入和删除运算做了上述限制之后,可分别得到顺序栈或链栈,顺序队列或链队列。