问题标签 [modified-preorder-tree-t]

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 投票
1 回答
424 浏览

c++ - 算法 DFS 找到的生成树是否总是按顺序显示?

我在 C++ 中执行 DFS 算法以找到生成树,使用算法 DFS 生成树的输出始终是预排序的,还是纯属巧合?

0 投票
1 回答
1357 浏览

c++ - 如何使用算法 BFS 指示生成树的前序

我正在 C++ 中执行 BFS 算法以查找生成树,生成树的输出应该按顺序显示,但我对实现有疑问,如果不完全知道如何构建树,我该如何构建树许多孩子有每个节点?考虑递归树结构树的数据结构可以写成:

但是不要认为它可以像前面提到的那样在这个实现中起作用。

这是我按顺序返回树的函数:

我还想知道是否有任何方法可以在不使用树结构的情况下对节点进行预排序。

0 投票
1 回答
514 浏览

c++ - 为什么在打印 BST 的前序遍历时我的程序什么也不做

我正在尝试编写一个代码,允许我输入一个树节点,然后指示它的前序遍历,但不明白会发生什么。我究竟做错了什么?

这是我的代码:

假设调用预购操作,它应该按该顺序打印树,但程序只是终止并且不打印任何内容,我坚持这个请帮助我,并原谅我的英语

0 投票
1 回答
1947 浏览

c++ - 如何使 BFS 生成树的结果预先显示

我正在尝试为作业实现 BFS 算法,我找到了带有 BFS 的生成树算法,问题是我要求生成的生成树按顺序显示。这是我的解决方案代码:

对于这个输入:

我的算法产生输出:[0 1 2 3 4 7 5 6 8 9]。通过打印每个级别的节点来表示 BFS 树,如下图所示:

在此处输入图像描述

但是正确的输出(按顺序)应该是[0 1 3 4 5 6 2 7 8 9],从而导致按顺序遍历树。我需要我的代码的解决方案,如何修复我的代码以向我显示预购解决方案?,因为不必使用树,也就是说,可以以某种方式将树直接存储在我的数组 BFS_tree 中。我坚持这一点。我在这里读到了一个类似的问题,但我不能为效率措施实施树,而且这是不允许的。我怎么能这样做?有可能吗?...对不起,我的英语。

0 投票
1 回答
64 浏览

php - 修改前序树遍历 - 包含在 div 中

-EDIT-<li>可能会更好,但同样的问题仍然适用。

因此,只要我能显示数据并获得预期的结果,我就可以让一切正常工作。我的显示部分来自http://www.sitepoint.com/hierarchical-data-database-2/上的文章

我有:

它按预期工作。我现在要做的是将它们正确地包含在 div 中。所以我希望它看起来像:

所以你可以看到顶部的 Title div 包含了该 div 的所有 subs,依此类推。我不知道该怎么做。我可以看到我想要做的count($right)是再次等于 div 的计数是何时关闭 div,但同样,不知道如何去做。

0 投票
0 回答
105 浏览

php - 在修改的预排序树遍历中更新评论。我需要锁定行吗?

您的基本评论/回复系统使用预先修改的树遍历进行排序。示例输出可能如下所示:

等等。当用户发表评论时,所有适当的左右值都会更新。我的想法是,如果您同时有多个回复,那么这些数字可能会完全失控。我对 mysql 不是很熟悉,而且我知道存在行锁定,所以这意味着这种问题肯定会在某种上下文中发生。我只是不确定这是否是那种背景。如果我应该锁定它,我猜我会想做某种形式的SELECT x FROM table FOR UPDATE; UPDATE table SET "the stuff needed setting";如果我应该这样做,我应该选择所有行(lft=1 和 rgt=max)吗?还是我应该只选择要更新的内容?

0 投票
0 回答
215 浏览

php - 修改的预排序树遍历 - 按分数排序孩子

所以我已经能够输出我想要的数据,除了现在我希望能够根据单个项目的分数重新排列它。所以现在我输出如下内容:

我通过将左右值放在一个数组中并迭代它来得到它。如果它是一个左值,它会输出<ol>item,如果它是正确的,它会关闭它</ol>

使用上面的例子,我想要做的是如果Item2有一个比 , 更好的分数Item1Item2将是第一个,Item1它的所有孩子都将在它之后。如果subitem1B分数高于subitem1Asubitem1B将是之前subitem1A及其所有子项。

我不确定在运行将所有 html 放入变量以供输出的循环之前是否必须对 DB 查询或其他操作做一些事情,但我在考虑是否有输出以某种方式可以检查任何<ol>是 parent 的直接孩子的<ol>。因此,如果我查看subitem1A并查看其父项,Item1则查找具有父项的任何<ol>Item1,检查分数,然后进行相应的排序。我不知道这是否可能,但这是我的思考过程。

编辑 - 根据要求添加更多信息。

我做这个查询:

然后:

基本上我只是遗漏了一些 html,这只会让事情变得更难阅读。乐谱可以放在任何需要的地方。的 id<ol>可以是分数或任何东西。随便什么都行。

0 投票
0 回答
239 浏览

php - 从脚本中对修改的预排序树遍历进行部分替换

我有一个这样的 MPTT(修改的预序树遍历):

在此处输入图像描述

在此处输入图像描述

(取自SitePoint

我的真实树有数千个节点和更复杂的结构,但这是显示问题的简化。

直到现在,每次我需要更改这棵树时,我都会使用如下所示的 shell 脚本:

并执行此(tree.sql):

注意:我使用 shell 脚本来执行此操作,因为在多个服务器中存在多个相同 PHP 应用程序的安装,这是更新所有这些应用程序的简单/快速方法,但如果需要,我可以将更新移动到 PHP)。

但是现在,要求指出:

  1. 食品/肉类分支将永远存在
  2. 必须保留食物/肉类子树,因为用户现在可以编辑其内容
  3. 树的其他部分必须更新(在这种情况下为食物/水果,但应用程序与结构无关)。

因此,鉴于此我无法执行 a DROP TABLE,我需要检索一个分支(食物/肉类)并将其插入到 , 之后的树中DROP TABLE并被CREATE TABLE执行INSERT TABLE

问题是:如何从 shell 中检索分支?以及如何再次插入?(请注意,如果无法从 shell 脚本执行此操作,我可以创建两个小的 PHP 脚本,但我仍然不知道如何获取分支并再次插入它,欢迎任何想法)

0 投票
2 回答
520 浏览

c# - 从 DataTable 结构计算前序树遍历

我有一个具有以下结构的 DataTable:

使用 C#,我需要遍历这个结构并为每个节点计算正确的 Tree L 和 Tree R 值。这只是一个例子,真实的结构有数百个节点,至少达到 7 级,但可能更多。

谁能建议我如何处理计算左右值的代码?

0 投票
1 回答
22 浏览

c - 错误:无效值没有被忽略,我该如何解决这个问题?