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
我不确定我是不是理解了你的问题。
当你使用两个栈实现一个队列的时候,此时,问这个队列的 capacity 没有意义了。因为这个队列没有 capacity 属性,栈有 capacity 属性,你可以说出来每个栈在某个时刻的 capacity,但是队列没有这个属性。你当然可以把这两个栈在某个时刻的 capacity 加在一起,然后说这个队列的 capacity 是这么大,但这意义并不大。
举一个或许不恰当的列子。你现在所使用的操作系统的代码中,也有诸多动态数组在运行着。那么,现在你的这个操作系统的 capacity 是多少?这个问题的意义是不大的。
另外,在你的分析中,不能只看一个 stack 的capacity,却看两个 stack 的 size。两个 stack 的 size 的和一定是小于等于两个 stack 的 capacity 的和的。
继续加油!:)
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星