博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构-线性表
阅读量:6946 次
发布时间:2019-06-27

本文共 586 字,大约阅读时间需要 1 分钟。

线性表的定义: 前面的节点叫做前驱,后面的节点叫做后继,线性表规定:只有一个节点具有前驱没有后继(尾节点),只有一个节点只有后继没有前驱(头节点)。

按照存储来说,又分为顺序存储,和链存储式.

顺序储存是将多个节点存放到一个连续的空间,这种方式的优点很明显易于理解,并且在查询上来说非常简便。只需要只要第一个节点的位置和查询节点的下标就可以注解的定位到。确定是需要连续的空间,并且在删除某个节点之后为了保证连续性的话,我们需要将元素进行移动,最差的情况下时间负责度为n.

链式储存的方式刚好和顺序存储不太一样,在存储上并不是连续的,而是通过各个节点通过地址进行串联的,也就是每个节点需要额外的储存前驱或者是后继的储存位置。链式表的好处在于对节点的增加和删除可以很简便的完成,时间复制度为1.但是对于查找来说,最差的情况需要n,链式表又分为 单链表 循环链表和 双链接

 

 

链式表和顺序表各有各的优点.在使用的时候需要考虑很多情况,因为虽然链式的插入效率高,但是查询效率比顺序的低,内存暂用比较多。而顺序表则是查询效率高,但是需要连续的空间,以及插入的效率不高.除了这些外,在JAVA中因为顺序表在初始化的时候已经指定了空间,当空间满了之后,需要进行扩容,扩容的原理是将原有的数组拷贝到一个更大的空间,然后释放以前的空间,这是一个很耗 资源的操作,所以还要看是否需要经常的扩容。

 

转载地址:http://xhhnl.baihongyu.com/

你可能感兴趣的文章
职场人的“存在主义”哲学
查看>>
全互联结构D***综合配置示例
查看>>
在路上【我与51CTO的故事】
查看>>
演示:外部全局地址与外部局部地址的使用案例
查看>>
Elasticsearch集群监控与报警原理解析
查看>>
离开网易的转型之路2:无悔选择测试之路-路上的抉择、进取
查看>>
2014年中回首与展望
查看>>
局域网共享
查看>>
mysql建表-主键-索引-外键
查看>>
Android Studio第三十期 - 介绍几种网络请求方式写法
查看>>
计划任务导致的邮件系统故障
查看>>
《从零开始学Swift》学习笔记(Day 35)——会使用下标吗?
查看>>
盛大私有化和陈天桥的土皇帝心态
查看>>
Exchange Server 2013 公网发布疑难解答
查看>>
Oracle 12c dataguard云上挖坑记--为某机场贵宾业务部署oracle 12c到云端
查看>>
前端开发在不久的将来定会成为主导
查看>>
jQuery内ready与load事件的区别
查看>>
[笔记].关于Stratix III使用非易失加密后,无法正常配置启动的问题探讨
查看>>
一个通用的单元测试框架的思考和设计03-实现篇-核心类源码
查看>>
万能导出数据到Excel
查看>>