当前位置: 首页 > 知识库问答 >
问题:

为什么先偷看然后删除而不是轮询

萧繁
2023-03-14

在多个实例中,我遇到了首先查看队列头然后删除的算法。我想知道是否有什么特别的原因为什么不使用投票代替。例如,下面的二叉树层次顺序遍历算法

  1. 将根节点添加到队列中。
  2. 将队列大小分配给变量,例如count。重复步骤3到7次计数,其中N是队列的大小。
  3. 如果队列不为空,则打印出队列。
  4. 查看头节点
  5. 如果头部已离开子级,则将其添加到队列
  6. 如果head有正确的子项,则将其添加到队列
  7. 从队列中移除头部。
  8. 如果队列不为空,请返回步骤2。

共有1个答案

淳于玺
2023-03-14

有些容器只提供peek和remove,因为如果函数同时提供peek和remove,则很难或不可能提供强异常保证:http://en.wikipedia.org/wiki/exception_safety

 类似资料:
  • 我是socket.io的新手,已经用node/express/socket.io编写了我的第一个应用程序。我想向公众发布我的应用程序,但我担心它对很多人都不起作用。我有几个朋友测试了我的应用程序,一切都很顺利(这是一个非常简单的应用程序)。我担心的是:现在每个连接似乎都在使用websockets,这正是我想要的。但是,我的应用程序有时会因为客户端的一些奇怪的事情而降级为“投票”吗?如果是,sock

  • 当我运行(Windows 7命令行)时: C:\rest-app\src\main\java\com\mycompany\app\test>java org.testng.testng testng.xml Suite1运行的测试总数:0,失败:0,跳过:0 ================================================== 此时我的testng.xml文件如下所

  • 我试图理解背后的动机。如果已经存在类型类和,为什么有必要呢? 诚然,的实例是具体的类型,而的实例需要一个类型参数。(有关有用的解释,请参见Monoid vs MonadPlus。)但是你不能重写任何类型的约束吗 作为和的组合? 从。它的实施是: 我只能使用和实现它: 有人能澄清和之间的真正区别吗?

  • 我正在写申请表。它需要列出除了PI和表单提交者之外的研究团队成员。然而,一些研究将没有额外的团队成员,所以我希望该行保持隐藏,直到有人点击添加团队成员按钮。 什么在起作用: 1。我在最初加载页面时隐藏了元素。2.单击添加行可以添加正确的行。3.单击删除将删除一行。 目前存在的问题:1.如果有人添加团队成员,然后删除所有团队成员,单击添加团队成员将不会添加行。2.当元素在初始页面加载中隐藏时,第一次

  • 问题内容: 我已经在Android代码中使用FloatBuffers一段时间了(从一些opengles教程中复制了它),但是我无法确切地理解此构造是什么以及为什么需要它。 例如,我在许多人的代码和android教程中看到了以下代码(或类似代码): 就我所知,这似乎是冗长和混乱的,我只是说它们只是一个浮点数的包装而已。 问题: 与任何其他类型的float集合或简单数组相反,这种类型的类(ByteBu

  • 问题内容: 对于Java的处理方式以及涉及到的数字和其他类型的数字,我有些困惑。例如: 输出(也许您应该先猜测一下): 这不能编译是可以预料的,是不同的对象。 令我有些惊讶的是,默认情况下9是an ,并且1)甚至没有编译。请注意,您不能将放入期望使用的方法中,但是在这里它们是相等的。 由于两个相同的原因,这令人惊讶,但似乎更糟。 不足为奇,因为自动装箱到和。 不足为奇,因为不同类中的对象不应该是。