capacity的计算

capacity的计算

只使用一个栈的时候,假设创建栈的时候capacity默认都是5,stack=【1,2,3,4】的容量是5,很直白;但使用两个栈的时候,stack1=【1,2,3,4】,这时候capacity=5,我dequeue,再enqueue(1),stack2=【4,3,2】,stack1=【1】,它们的容量分别为5,那实际容量是怎么看呢?size可以二者相加(等于4),但capacity只看stack1的话,可能会出现size大于capacity的情况;如果看二者之和的话,enqueue操作又是只作用于stack1的,有点反直觉,这种情况下是已经没有所谓的容量了吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
liuyubobobo 2023-11-28 05:53:05

我不确定我是不是理解了你的问题。


当你使用两个栈实现一个队列的时候,此时,问这个队列的 capacity 没有意义了。因为这个队列没有 capacity 属性,栈有 capacity 属性,你可以说出来每个栈在某个时刻的 capacity,但是队列没有这个属性。你当然可以把这两个栈在某个时刻的 capacity 加在一起,然后说这个队列的 capacity 是这么大,但这意义并不大。


举一个或许不恰当的列子。你现在所使用的操作系统的代码中,也有诸多动态数组在运行着。那么,现在你的这个操作系统的 capacity 是多少?这个问题的意义是不大的。


另外,在你的分析中,不能只看一个 stack 的capacity,却看两个 stack 的 size。两个 stack 的 size 的和一定是小于等于两个 stack 的 capacity 的和的。


继续加油!:)

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
算法与数据结构
  • 参与学习       2583    人
  • 解答问题       1082    个

慕课网算法名师Liuyubobobo,5年集大成之作 从0到工作5年,算法与数据结构系统解决方案

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师