【发布时间】:2015-11-22 01:35:12
【问题描述】:
对于基于数组的双端队列,为什么要从前面摊销 O(1) 添加和删除?对我来说,它总是 O(n) 是有意义的,因为任一操作都意味着数组的当前值需要“移动”到 0 索引的右侧以添加并移到左侧删除...
我的教授说你不需要换班,只需更新 hi 和 lo。我不完全确定他的意思。
这本身不是一个 C++ 问题,但我试图用这种语言来理解它。
【问题讨论】:
-
我假设它只是将指向“前”和“后”的指针移动到数组中的不同位置。这改变了队列的逻辑结构,而不必真正改变队列中的所有内容。
标签: c++ queue dynamic-arrays deque