问题标签 [tree-traversal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
8 回答
30226 浏览

c++ - 二叉树的层序遍历

上面贴出的代码是我的关卡顺序遍历代码。这段代码对我来说很好,但我不喜欢的一件事是我正在显式初始化temp_node = NULL或者我使用 break。但这对我来说似乎不是一个好的代码。

有没有比这更简洁的实现,或者我怎样才能让这段代码更好?

0 投票
1 回答
1149 浏览

php - 如何从此结果集中创建一个数组(使用遍历模型存储在数据库中的嵌套类别)?

基于这个问题: Getting a modified preorder tree traversal model (nested set) into a <ul>

下面的逻辑用于构建有序列表,但是如何对数组做同样的事情呢?

我想构建一个嵌套数组。

0 投票
2 回答
2909 浏览

javascript - 建设性地操作未知深度的 JSON 树中的任何值/对象

我有一个包含节点和子节点的 JSON 树 - 格式为:

我不知道这棵树的深度,一个节点能够有很多孩子,也有很多孩子等等。

我的问题是我需要使用 nodeID 将节点添加到此树中。例如,一个可以采用 nodeID 和节点对象(包括其子对象)的函数将能够替换树中的该节点 - 结果将成为一棵更大的树。

我只遇到递归函数,它允许我遍历 JSON 树中的所有节点,并且我对这些函数之一所做的修改返回了节点对象 - 但对我没有帮助,因为我需要修改原始树:

这使我可以进行以下测试:

综上所述 - 如何修改深度未知的 JSON 树的值?

提前致谢

0 投票
1 回答
269 浏览

python - 使用页面属性 sortIndex 遍历树

我正在基于从一个db.Model名为 Pages 检索到的列表构建一个树结构。

每个 Page 条目都有一个 parentKey 属性,它是 adb.SelfReferenceProperty()和一个db.IntegerProperty()称为 sortIndex。

我获取列表并调用一个方法来遍历列表并将嵌套的字典作为我的树。我获取整个列表的原因是我想跳过多个查询。

和 build_tree:

问题是列表重新排列并且不遵循 det ORDER BY。我认为这是因为当找到合适的父级时,每个页面都被放入列表中。但即使是第一级(具有 的页面parentKey == None)也以错误的顺序返回。

我尝试在 tree[str(i) + '_' + str(key)] 上使用循环计数器设置前缀,但仍然没有以正确的顺序返回。

那么问题是如何让它们按正确的顺序排列?

编辑[已解决]:

见下文

0 投票
4 回答
2075 浏览

algorithm - 寻找二叉树的边界

我们得到一个二叉搜索树;我们需要找出它的边界。

所以,如果二叉树是

它应该打印出来50 25 15 35 120 155 250 20 150 10

如果二叉树是

应该是这样的50 25 15 35 65 30 200 150 10

如何才能做到这一点?将其推广到二叉树是否会使问题变得更加困难?

通过链接提供的任何帮助也将不胜感激。

PS:请注意,模式不是从根开始,而是从左边开始(在这种情况下)。它也可能以正确开头,但始终以根结尾。

0 投票
1 回答
934 浏览

tree - 使用给定遍历重绘二叉树

我不明白如何绘制二叉树进行遍历。有人可以以更有效的方式向我解释中序、前序和后序遍历吗?

例如:

给定以下遍历,重建确切的 BINARY 树:

为了:

发布订单:

0 投票
2 回答
3113 浏览

data-structures - 公式的后序遍历

在数据结构中,我将按顺序转换和预排序公式转换为树。但是,我对后订购不是很好。

对于给定的公式x y z + a b - c * / -

我想出了

在大多数情况下,这似乎很合适,除了左子树中的 * 是甲板上的小丑。在后序遍历中,最后一个字符是树的顶部节点,其他所有内容都向下分支。现在我将 / 和 * 运算符表示它们应该位于相反的节点上。但是,在遍历树时,除了 * 之外的所有内容都适合,因为左子树必须先到达根节点之前的节点,然后再切换到右子树。

向正确方向轻推是值得赞赏的。

0 投票
3 回答
282 浏览

c++ - Binary Search Tree-breadthFirst 函数调用

我有算法, void leveltraversal(ostream& out); 但我不知道如何在 main () 中调用它。在我的作业中,我们不允许更改头文件。有没有办法在不重载的情况下调用它?

更新:

0 投票
2 回答
415 浏览

php - 在不循环的情况下访问 SimpleXMLElement 属性

我已经尝试过 SimpleXMLElement XPath 方法和 DOMDocument XPath 方法,但似乎都无法让事情变得直接,但至少使用 SimpleXMLElement 路由,我实际上可以打印出结果 var 并查看发生了什么。(见下面的结果)

我想使用 XPath 查询而不必遍历结果。我想我只想像访问数组一样访问结果,但问题似乎超出了该结果数组中的 SimpleXMLElement 对象。

我正在通过具有特定类的 div 查询 HTML 片段。虽然这个特定类有几个 div,所以它们都被返回,这很好。这就是我想要的。但是现在我想访问每个并获取它们的值,在大多数情况下只有它们有子 div。

这是我用来执行 XPath 查询的行:

这是结果的 print_r() 输出:

现在,因为我知道每个值在哪里,我想我可以像这样访问它们:

明显的问题是 SimpleXMLElement 对象夹在 $stats 数组中的项目和我所追求的 ['div'] 数组的子项值之间,它们隐藏在那些 SimpleXMLElement 对象后面。

那么如何在不循环 $stats 数组的情况下获得 SimpleXMLElement 对象之外的那些值呢?有什么类似于我上面已经尝试过的吗?

0 投票
5 回答
5434 浏览

javascript - 函数如何找到最初调用该函数的锚的父元素?

好的,仅这个问题就让我头晕目眩。

我有一个调用函数的锚标记:

仅供参考,这是被调用的函数:

我想允许此功能在单个页面上处理多个表单。所以我的想法是在树中返回到父表单元素,获取它的 id 并使用它(以某种方式)允许该函数在页面中的多个表单上工作。

您可以看到我尝试使用快速的 console.log 来测试我的想法,但它一直返回“未定义”。我还尝试在锚标记本身中运行 console.log,但它也是“未定义”。

我测试了 .parents() 并且它在锚标记中完美地工作,但在函数 iteslf 中却没有。

有什么建议么?