我的数据结构算法类中有一个问题。
对于以下哪个表示,可以在恒定的最坏情况时间内执行所有基本队列操作?
要为循环链表执行恒定的最坏情况时间,我应该在哪里保留迭代器?
他们有两个选择:
我的回答是,为了得到最坏的情况,我们应该保持与列表中最后一项对应的迭代器,但我不知道如何证明和解释。那么这个答案理由需要什么重要的一点。
答案 0 :(得分:0)
对于以下哪个表示,可以在恒定的最坏情况时间内执行所有基本队列操作?
我的回答是,为了得到最坏的情况,我们应该维护与最后一项对应的迭代器
假设您的循环列表是单链接的,并且循环列表中的“最后一项”是最新插入的那个,您的答案是正确的 * 。为了证明你是对的,你需要演示如何在恒定时间内执行这四个操作:
由于这些操作都不需要迭代列表,因此所有这些操作都可以在恒定时间内执行。
* 使用双向链接循环列表,两个答案都是正确的。