数据结构的分类

数据的逻辑结构可分为两大类:一类是线性结构,一类是非线性结构。线性结构中有且仅有一个开始结点和一个终端结点,并且所有的结点最多只能有一个前驱和一个后继。线性表是典型的线性结构。非线性结构的一个结点可能有多个前驱和后继。如果一个结点最多只有一个前驱,而可以有多个后继,这种结构就是树。树是最重要的非线性结构之一。如果对结点的前驱和后继的个数不做限制,这种结构就是图。图是最一般的非线性结构。

数据的存储结构取决于四种基本的存储方法:顺序存储、链接存储、索引存储和散列存储。

顺序存储方法是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点之间的逻辑关系用存储单元的邻接关系来体现。顺序存储主要用于线性结构,非线性结构也可以通过某种线性化的方法来实现顺序存储。通常顺序存储是用程序语言的数组来描述的。

链接存储方法对逻辑上相邻的结点不要求在存储空间的物理位置上亦相邻,结点之间的逻辑关系由附加的指针来表示。非线性结构常用链接存储,线性结构也可以链接存储。通常链接存储是用程序语言中的指针来描述的。

索引存储方法是在存储结点数据的同时,还建立附加的索引表。索引表的每一项称为索引项。一般情况下索引项由关键字(关键字是结点的一个字段或多个字段的组合,其值能唯一确定数据结构中的一个结点)和地址组成。一个索引项唯一对应于一个结点,其中的关键字是唯一能标识该结点的数据项,地址指示该结点的存储位置。

散列存储方法是根据结点的关键字计算出该结点的存储地址的,是一种从关键字到地址码的存储映射方法。

同一种逻辑结构采用不同的存储方法,可以得到不同的存储结构。一种逻辑结构可采用一种方法存储,也可采用多种方法组合起来进行存储。

存储结构是数据结构概念不可缺少的一个方面,所以常常将同一逻辑结构的不同存储结构用不同的名称标识。例如,线性表的顺序存储称为顺序表,线性表的链接存储称为链表,线性表的散列存储称为散列表。

数据的运算也是数据结构概念不可缺少的一部分。同一种逻辑结构采用同一种存储方式,如果定义的运算不同,也将以不同的名称标识。例如,若在线性表上插入、删除操作限制在表的一端进行,则称为栈;若插入限制在表的一端进行,删除限制在表的另一端进行,则称为队列。如果这种线性表是顺序存储的,则称为顺序栈或顺序队列;如果是链接存储的,则称为链式栈或链式队列。

在计算机环境下研究数据结构,应该将数据的逻辑结构、数据的存储结构和数据的运算看成一个整体,只有对这三个方面都清楚了,才能真正了解这个数据结构。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值