java数据结构

本博参考:http://blog.csdn.net/qq_28057577/article/details/52692089

概图

数组:
特点:元素在内存中线性连续存储,可以根据下标快速访问数组元素,但是增删效率不是很高,每一次增加或删除元素都需要
大量移动元素空出插入位置或者填补删除元素的位置。

使用场景:频繁查询,很少进行增加或删除操作的情况

 

链表:
特点:存储可以不连贯,根据索引将数据联系起来,当查询元素的时候需要从开头开始去查询,所以效率比较低,然而增加或删除
元素的时候只需要修改索引就可以了。
使用场景:少查询,需要频繁插入或删除的情况

 

队列:
特点:先进先出(FIFO/fisrt in first out),如同一个单向隧道,先进的车先出。

使用场景:多线程的阻塞队列管理非常有用

栈:
特点:后进先出(LIFO/last in first out),就像一个箱子,先放进去的东西在底部,需要先拿出上面的东西,下面的东西才能拿出来

使用场景:实现递归以及表达式计算,android运用栈的原理实现back stack

.数组与链表的区别
(1)数组连续,链表不连续
(2)数组内存静态分配,链表内存动态分配
(3)数组查询时间复杂度为O(1),链表为0(n)
(4)数组增加删除的时间复杂度为O(n),链表为O(1)

(5)数组从栈中分配空间,链表从堆中分配空间

转载于:https://www.cnblogs.com/wyw-action/articles/7339926.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值