Stack/Queue与Vector/List的联系

本文探讨了Vector和List两种数据结构的特点,Vector作为顺序表,适合尾部的插入和删除,而List作为链表,适合头删尾插。Vector的CPU缓存利用率高于链表。在实际应用中,通常使用Vector实现栈,List实现队列,以利用它们各自的性能优势。
摘要由CSDN通过智能技术生成

Vector:(顺序表【数组存储】)

1.当申请的空间不足的时候,需要再次开辟一块更大的空间,并把值拷过去。

2.对于尾删和尾插是比较方便的,只需要改动最后一个元素即可。不会改动原有的空间。适用于多次重复的对尾部插删。

3.顺序存储,地址是连续的。

4.头插和头删都需要移动一定的大小。时间复杂度为o(N)。而链表只需o(1)。

List:(链表)

1.需要每次都创建节点。

2.适用于头删尾插,但是不适用于多次重复的插删,因为每次都得创建节点,释放节点,消耗是比较大的。

3.非顺序存储,地址不连续。

4.由于节点之间地址是不连续的,所以会产生内存碎片问题。

如图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值