问题标签 [hierarchical-trees]

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 投票
2 回答
2503 浏览

recursion - 级联到根节点的树结构类别和

我要站出来说我不是世界上最伟大的数学家 :D 所以这个问题对你们大多数人来说可能很简单。不幸的是,这让我感到困惑,并且已经尝试了几个可行的解决方案。

与任何一棵树一样,一棵树可以有许多分支,许多分支可以有更多分支,依此类推,直到它们以叶节点结束。我有关于每片叶子的信息,表明它的价值。

我需要的是清楚地解释如何解决将每个叶节点值汇总为它的分支(父)的总和并为其余部分做同样的问题,但不要忘记如果一个分支由其他分支共享它是每个与自身直接相关的较低级别分支和叶子的摘要。

为了更好地解释:

目标:

我能够识别最低级别的成员(叶节点)、根节点和分支本身。我无法确定该分支是否有其他分支链接到自身较低或直接链接到叶节点。这种关系非常自下而上。IE:分支没有提及它的孩子是谁,但孩子知道父母是谁。

如果有不清楚的地方,请询问,我会尝试更好地解释问题。

任何帮助,将不胜感激。

0 投票
3 回答
1316 浏览

php - 教义嵌套集删除

我有一些模特正在使用 Doctrine 嵌套集功能。我想从树中添加元素的删除功能,因为这是我的应用程序所必需的。我正在尝试使用文档中的片段,但该代码出现了一个非常奇怪的错误。

YAML 在这里: http: //pastie.org/820978

我正在我的 Menu 类中尝试使用此代码来扩展生成的抽象类 BaseMenu 和 BaseMenu 扩展 Doctrine_Record :)

无论如何我的代码:

我得到这个错误:

致命错误:在非对象上调用成员函数 getNode()

我刚刚注意到 get_class($item) 正在引发一场交战(所以这可能是这种奇怪行为的原因):

警告:get_class() 期望参数 1 是对象,布尔值在...

但是我需要一个解决方案,欢迎所有提示......

0 投票
2 回答
585 浏览

c - 在分层树中构造叶子

此代码使用基于深度的值填充树。但是在遍历树时,如果不遍历父节点,我就无法确定子节点的实际数量。这是必要的,因为子叶存储在当前节点下的节点中。将叶子直接存储在当前节点中需要哪些概念更改?

0 投票
1 回答
1348 浏览

asp.net-mvc - 从自引用类别表构建和渲染无限层次类别树

我有一个Categories表,其中每个类别都有一个ParentId可以引用CategoryId我想显示为多级 HTML 列表的任何其他类别的表,如下所示:

目前,我正在递归渲染部分视图并传递下一个类别。它工作得很好,但这是错误的,因为我正在视图中执行查询。

每次我需要所有分层类别的列表时,如何将列表呈现为树对象并缓存它以便快速显示?

0 投票
2 回答
8013 浏览

php - 如何从 db 表、php 数组或 JSON 中获取分层 php 结构

可能重复:
将数据库结果转换为数组

嗨,伙计们,你能帮帮我吗?如何从 db 表、php 数组或 JSON 中获取分层 php 结构,但格式如下:

我的 SQL 表包含以下字段:ID、PARENT、ORDER、TITLE

你能帮我解决这个问题吗?我要疯了才能得到这个。

提前谢谢了。丹尼尔

0 投票
1 回答
3904 浏览

jquery - JQuery,分层表分页

分层表格和表格分页被多次询问。但我正在寻找他们两个一起。我已经在我的应用程序中使用 JQuery,所以使用相同的插件会很有用,但我愿意接受任何建议。目前我设法通过使用一些 jQuery 插件来显示分层数据,并添加了我自己的分页方法,但它还不够。

我正在寻找这样的分页。 http://docvert.org/holloway.co.nz/blog/wp-content/uploads/2008/07/treeview1.png

0 投票
3 回答
681 浏览

sql - 如何查询树中两个节点之间的所有节点?

我有一个分层数据库结构,例如列IDPARENT_ID为每一行定义,顶层行具有NULL PARENT_ID.

我将这个表中的所有关系展平到另一个表中,例如,如果祖父母、父母、孙子的单个层次结构中有 3 条记录,则将有 3 条记录:

与其执行分层查询来确定孙子是祖父的后代,我可以简单地检查(grandparent, grandchild)这个扁平表中是否存在记录。

我的问题是,使用这个扁平表,我怎样才能最有效地返回两个节点之间的所有记录。使用示例,使用grandparentgrandchild作为我的参数,我怎样才能取回(grandparent, parent)记录。

我不想使用分层查询来解决这个问题......我想知道是否可以在没有任何连接的情况下做到这一点。

0 投票
2 回答
258 浏览

data-structures - 什么是地图树的最佳数据结构

我正在寻找一种数据结构,它基本上是一棵地图树,其中每个节点的地图都包含一些新元素,以及其父节点地图中的元素。这里的映射是指带有键和值的编程映射,例如 STL 中的 map 或 python 中的 dict。

例如,可能有一个根节点:

和 2 个孩子,每个孩子都向父地图添加一个元素

然后我的搜索将在节点上执行。因此,例如 child1['jet'] 返回 35,但 root['jet'] 返回未找到错误。

我希望这尽可能节省空间,即我不想在每个节点存储结果映射的完整副本,但理想情况下查找仍然是 O(log N),N 是总数节点上的元素,而不是整个树。

我在想也许我可以使用一个智能哈希函数,但想不出任何东西。

天真的方法是将新添加的条目存储在每个节点的映射中,然后如果找不到任何内容,则向上移动树。我不喜欢这个,因为它取决于树的深度。

0 投票
2 回答
495 浏览

google-app-engine - 关于非关系数据库的分层数据的建议?

我正在开发一个使用非关系数据库作为后端的 Web 应用程序(django-nonrel + AppEngine)。我需要存储一些分层数据(项目/子项目_1/子项目_N/任务),我想知道我应该使用哪种模式。现在我想到了:

  • 邻接列表(存储项目的父 ID)
  • 嵌套集(存储项目的左右值)

就我而言,普通用户的嵌套深度不会超过 4-5 级。另外,在 UI 上,我想对第一级的项目进行分页,以避免在第一页加载时加载太多项目。

据我目前了解,当层次结构更多地用于显示时,嵌套集非常好。经常在树上进行编辑时,邻接列表非常有用。在我的情况下,我想我需要显示而不是编辑(使用嵌套集时,即使显示效果很好,上面的分页也会使编辑变得复杂)。

根据您在非关系数据库方面的经验,您有什么想法和建议吗?

0 投票
2 回答
6750 浏览

algorithm - 在 Perl 中创建树数据结构(必须是本地的)来表示位于外部文件中的调用树

这是该文件的示例。

... 表示调用深度。行后的文件名表示文件名和在父级中调用它的行号。我可以解析文件。一旦我解析了文件,我想要做的就是将数据放在一个 n 叉树中。我正在进行数据耦合和控制耦合分析,并且已经收集了构建中所有变量的所有设置/使用数据。我现在需要能够遍历树并根据深度确定是否存在任何使用前设置的情况或任何设置但未使用的情况。我认为遍历树是最有意义的。

以下是收集的数据的示例:

我还有一个包含所有变量名的数组。缩短示例:

我最大的障碍是找出合适的数据结构和算法来完成这项任务。

我认为对 n 叉树进行深度优先搜索会给我想要的东西。

这是我的最终解决方案:

输出看起来像这样:

从这个 call_tree.txt 文件:

使用这个子程序: