【发布时间】:2014-10-24 05:26:46
【问题描述】:
对于我最近的家庭作业,我应该实现一个“quack”,它是循环队列和堆栈的组合。 现在,我正试图围绕前两个函数 pushFront 和 pushBack。 以下是它们如何工作的示例。
pushFront(a) [a-----]
pushFront(b) [a----b]
反之,如果先调用pushBack,则需要将item放在数组的第一个元素中,然后再往回移动。
pushBack(a) [a-----]
pushBack(b) [ab----]
这是我感到困惑的地方:
1.) 使用模运算将前面从 item[0] 包装到 item[max -1]。我能想到的唯一解决方案是创建一个 if 语句,该语句在达到 [0] 时向前移动到 [max-1]。
2.) 为了让 pushBack 函数将值放在 item[0] 中,它必须从 item[max-1] 开始(然后在放置项目之前“向后”移动)。问题是,如果首先调用 pushFront,则该位置已经有一个项目。
3.)我考虑过使用 while(item[back] != null) 来移动它,但是我稍后编写的 pop 函数似乎并没有真正从数组中删除项目。相反,他们只是移动前后位置,实际上是为了缩短嘎嘎声。 感谢您的帮助,如果您出于任何原因想查看代码,请告诉我。因为我的问题更具概念性,所以我认为这可能是解决问题的最佳方式。
【问题讨论】: