数据结构学习体会(1)

 

                                           2009-12-05       16:20:20

        据的存储结构有数据存储和链式存储。

    首先,对于线性表,顺序存储有定长数组和堆内存的数组。获得顺序表的具体位置的元素及表的长度比较直接,但插入删除等操作需要移动大量的元素,时间复杂度较大。

    对于链表,运用了指针,可使数据的插入和删除操作更方便,但是对于获得线性表的长度并不是直接的。

    结合顺序表和链表的优点,静态链表既可以直接获得特定位置上的元素,也可以通过指针再不移动大量元素的前提下实现线性表的一些操作。

     在顺序存储和链式存储的基础上,之后的栈、队列,及串的存储结构都在这两种结构之上进行扩展。

     比较之下,栈的顺序存储要比链式存储更实用。因为结合栈的特性,数据的存储和删除都是在最后一个元素上进行,使用链式存储意义不大,而采用顺序存储(定长数组和堆内存),在操作方面更方便,另设一个指向站定元素指针,方便进行栈的相关操作。当然也可以在结构体struct中加一栈长度的成员(如有需要的话,例如涉及栈的长度时判断插入、删除未知是否合理,在定长数组存储时,是否允许插入等),这样不必用strlen求串长。

     还有串的三种存储结构:定长数组,堆内存,和块链存储。但相比较,块链存储操作起来最复杂,一般不采取,而定长数组顺序存储容易出现截断现象,解决这个问题需要为数组增加存储空间,因此堆内存的存储结构更合理。

     根据队列的特性,队列的存储结构采用链式存储更适宜。

另设一对头指针和对为指针。

     总之,各种存储结构是相互关联的。栈和队列可以说是特殊的顺序表或链表。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值