Stack/Queue与Vector/List的联系
来源:互联网 发布:足彩数据分析 编辑:程序博客网 时间:2024/05/22 14:04
Vector:(顺序表【数组存储】)
1.当申请的空间不足的时候,需要再次开辟一块更大的空间,并把值拷过去。
2.对于尾删和尾插是比较方便的,只需要改动最后一个元素即可。不会改动原有的空间。适用于多次重复的对尾部插删。
3.顺序存储,地址是连续的。
4.头插和头删都需要移动一定的大小。时间复杂度为o(N)。而链表只需o(1)。
List:(链表)
1.需要每次都创建节点。
2.适用于头删尾插,但是不适用于多次重复的插删,因为每次都得创建节点,释放节点,消耗是比较大的。
3.非顺序存储,地址不连续。
4.由于节点之间地址是不连续的,所以会产生内存碎片问题。
如图:
List和Vector还有一个重要的点是:
Vector的CPU缓存利用率比链表高。
简单阐述一下:
那么,Vector/List与Stack/Queue有什么联系呢?
Stack:[栈](后进先出)
对于栈来说,后进先出,所以是对尾部进行插删操作,和Vector(尾插尾删较方便)是类似的。
Queue:[队列](先进先出)
对于队列来说,是先进先出的。所以,对头部删除,尾部插入是比较方便的,刚好和链表(List)是类似的。
一般情况下,我们会用Vector来模拟实现栈;用List来模拟实现队列。
1 0
- Stack/Queue与Vector/List的联系
- java vector,list,map,stack,queue
- <stack>,<queue>,<vector>的用法
- Map、Set、List、Queue、Stack的特点与用法1
- Map、Set、List、Queue、Stack的特点与用法2
- Map、Set、List、Queue、Stack的特点与用法1
- Map、Set、List、Collection、Queue、Stack的特点与用法。
- Map、Set、List、Queue、Stack的特点与用法
- Map、Set、List、Queue、Stack的特点与用法1
- JAVA Map、Set、List、Queue、Stack的特点与用法
- Map、Set、List、Queue、Stack的特点与用法
- Map、Set、List、Queue、Stack的特点与用法
- Map、Set、List、Queue、Stack的特点与用法。
- Map、Set、List、Queue、Stack的特点与用法
- 16. Map、Set、List、Queue、Stack的特点与用法。
- c++中stack、queue、vector的用法
- C++9.5 vector/list/queue容器的区别与选用
- stl 常用函数(包括vector list stack queue)
- android 编译签名证书冲突
- Android Studio 插件-Android Styler 的使用
- 基础类型的简单运算,三目运算和字符串的加法
- Python小练习-实现简单端口扫描~
- JDBC连接数据库操作(三)
- Stack/Queue与Vector/List的联系
- Matlab代码从Windows拷贝到Linux变成乱码
- 机器学习的种类及其典型的任务
- 解决CentOS sudo提示用户不在sudoers文件中的方法
- 在struts的action中throw exception却没有打印到控制台
- UVC 摄像头驱动(三)配置摄像头,实时数据采集
- 有关TLD源码的使用过程介绍
- 1125
- 数据库的一些常见面试题及其答案详解