Algorithm python中的数据结构和算法

Algorithm python中的数据结构和算法,algorithm,data-structures,queue,Algorithm,Data Structures,Queue,Q1-假设一个初始为空的队列Q总共执行了32个队列 操作,10个首次操作,15个出列操作,其中5个 引发了捕获并忽略的空错误。目前的情况如何 Q的大小 我认为这个问题的答案是22;但是在这个问题上我需要帮助 问题2-上一个问题的队列是否是ArrayQueue的实例 它使用了一个容量为30的初始阵列,其大小从未如此之大 如果小于30,则front实例变量的最终值是多少?严格定义队列上的操作将有助于开始: 无效排队(项目)-将项目插入队列末尾 项目出列-移除并返回队列前面的项目。如果调用操作时队列

Q1-假设一个初始为空的队列Q总共执行了32个队列 操作,10个首次操作,15个出列操作,其中5个 引发了捕获并忽略的空错误。目前的情况如何 Q的大小

我认为这个问题的答案是22;但是在这个问题上我需要帮助

问题2-上一个问题的队列是否是ArrayQueue的实例 它使用了一个容量为30的初始阵列,其大小从未如此之大
如果小于30,则front实例变量的最终值是多少?

严格定义队列上的操作将有助于开始:

  • 无效排队(项目)-将项目插入队列末尾
  • 项目出列-移除并返回队列前面的项目。如果调用操作时队列为空,则抛出空错误
  • 项目优先-返回队列前面的项目,不要删除它
这意味着,如果队列大小大于0,则排队增加一个队列大小,出队从队列大小中删除一个队列大小,并且第一个不会影响队列大小

我们有32个增量,10个无操作和15个潜在的减量。其中五个可能的减量没有影响队列大小,因此只剩下十个

32 * 1 + 10 * 0 + 5 * 0 + 10 * -1 = 22
仅当操作定义如上所述时,此选项才有效。例如,如果我们将“入队”和“出队”的定义更改为:

  • void Enqueue(项目列表)-将列表中的每个项目插入队列的末尾
  • 项目列表出列(计数)-从队列前面移除并返回计数项目。返回最大(计数、队列大小)项
现在,我们没有足够的信息来回答这个问题。这就是为什么对你正在考虑的行动保持精确是很重要的

至于第二个问题,假设ArrayQueue被实现为大小为30的循环数组缓冲区(30个元素的数组,指针指向“前面”和“后面”元素),并且假设排队发生在“后面”,而出队发生在“前面”,那么我们所要做的就是计算出队的数量,因为这是影响前指针的唯一操作

15总的可能操作可能会改变前沿点。其中5个不会改变前面的位置,所以前面总共移动了10次。假设数组的索引为零,则front将指向数组索引10(第11项,准备进行下一次出列或第一次操作)


ArrayQueue的不同实现会有不同的答案。同样,当试图对结构的内部工作进行推理时,明确结构的实现也会有所帮助。

这些问题看起来像是家庭作业问题。如果你需要帮助,请展示你自己的努力,然后我们会尽力指导你;我毕业了,我想在数据结构方面提高自己