问题标签 [n-ary-tree]

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 回答
19157 浏览

c - C中的N叉树

哪一个是 C 语言中 N-ary 树的简洁实现?

特别是,我想实现一个 n-ary 树,而不是自平衡树,每个节点中的子节点数量不限,其中每个节点都包含一个已经定义的结构,例如:

0 投票
2 回答
2638 浏览

algorithm - 从 F# 中的 n-ary 树中提取叶子路径

这个问题的启发,我最近想尝试一下这个挑战,使用 F#

我的方法可能完全偏离了方向,但在解决这个问题的过程中,我试图获取数字 0-9 的所有排列的列表。

我正在考虑使用像这样的 n-ary 树来解决它:

我对自己很满意,因为我已经设法弄清楚如何生成我想要的树。

我现在的问题是我无法弄清楚如何遍历这棵树并将每个叶子的“路径”提取为一个 int。让我感到困惑的是我需要在单个节点上进行匹配,但我的“外部”函数需要一个节点列表。

我目前的尝试几乎做了正确的事情,除了它返回给我所有路径的总和......

而且我什至不确定这是尾递归。

(非常欢迎您提出另一种寻找排列的解决方案,但我仍然对这个特定问题的解决方案感兴趣)

编辑:我在这里发布了 F# 中的通用排列算法。

0 投票
3 回答
5302 浏览

ruby - 制作 n 叉树的“Ruby”方式

我正在编写一个 Ruby 脚本,并且想使用一个 n 元树数据结构。

是否有一个很好的实现可以作为源代码使用?谢谢。

0 投票
1 回答
930 浏览

java - java中的N元搜索树与可比较的userObject?

因此,假设我正在使用 javax.swing.tree.DefaultMutableTreeNode 构建一棵树,并将 N 个子节点添加到特定节点。我希望孩子们像搜索树一样按特定顺序(基于 Comparable/自定义 Comparator),即使我无序插入它们,如下所示:

但是 DefaultMutableTreeNode 不会进行任何类型的排序。对于我的特殊情况,我什至知道父数组中子节点的所需索引,但我尝试了 DefaultMutableTreeNode.insert 并得到了很多 ArrayIndexOutOfBoundsExceptions。

任何人都可以推荐一个可以满足我需要的图书馆吗?还是我必须自己写一个这样的搜索树?

0 投票
6 回答
1777 浏览

f# - F#:对 N 叉树进行递归收集和过滤

这伤害了我的大脑!

我想递归树结构并将与某个过滤器匹配的所有实例收集到一个列表中。

这是一个示例树结构

这是一个测试样本树:

收集和过滤 int 值为 3 的节点应该会给你这样的输出:

0 投票
3 回答
2042 浏览

data-structures - 如何删除一棵二叉树?每个节点也有一个父指针

节点结构如下。

我会欣赏递归和非递归方法。

0 投票
1 回答
283 浏览

c++ - 如何使用 tree.hh 重新父级

在这里,我有一个带有行组列表的窗口。在上图中,路径 2 到 6 是 Group1 的子节点。

http://i.stack.imgur.com/zb4FB.png

用于这棵树的容器是tree.hh。我将使用什么函数使 Group1(及其子级)成为路径 10 的子级。我不想删除行并将它们重新放回原处,只是重新父级。谢谢!

0 投票
1 回答
1896 浏览

javascript - 使用 KineticJS 绘制有根树

我正在开发一个 web 应用程序,它需要动态绘制有根的 n 元树,以绘制技能之间的先决条件关系。它实际上已经这样做了,您可以在此处查看示例。不过,我正在尝试改进它,使用PyMag 中列出的算法,我必须承认,我在试图弄清楚如何使其适应我的 JavaScript 代码时有点迷失了。

编辑:这是我当前用于绘制这些树的代码,来自 Rails ERB 部分(我会在此处粘贴代码,但有点冗长)。

对于那些检查我的代码的人来说,gon.skills_map是一个这种格式的数组:

  • gon.skills_map[0] 是字符串中的技能标题
  • gon.skills_map[1] 是技能的URL,这样每个节点都是可点击的
  • gon.skills_map[2] 是一个后置条件数组(我称之为先决条件的反面)数组,格式完全相同
  • gon.skills_map[3] 是先决关系的等级(影响线条粗细)
0 投票
1 回答
905 浏览

c++ - C ++中的Gnome N-ary Trees用法

我正在尝试使用 glib 在 c++ 中实现 N-ary Tree,但由于我不是 c++ 专家,因此在找出如何正确使用它时遇到了一些问题。有没有人有一个用 C++ 编写的简单示例来帮助我理解如何使用基本功能?我在使用 g_node_traverse 时遇到了特殊问题,我就是无法正确使用 GNodeTraverseFunc。

你可以在这里找到 N-ary Tree 的描述:http: //developer.gnome.org/glib/stable/glib-N-ary-Trees.html

我在 c 中找到了一些示例,但在这里我无法将它们正确翻译成 c++:

http://www.ibm.com/developerworks/linux/tutorials/l-glib/section7.html

尝试使用 n 叉树的最后一段代码。

我感谢您的帮助。

0 投票
1 回答
4755 浏览

java - 无法围绕填充 n 叉树

我正在做一个家庭作业项目,我从文件中读取连接站列表并创建格式为(键 = 字符串站,值 = ArrayList 连接站)的哈希图,到目前为止一切都很好。

然后,用户可以选择一个家庭电台,此时我正在尝试创建一棵树来表示家里所有可访问的电台。例如,树可能如下所示:

但是我无法解决如何将这些站点添加到树中,而不仅仅是根及其子项。所以任何人都可以给我一些关于我应该做什么/看什么的指示。

到目前为止,我的 TreeNode 类:

在主要:

编辑: 车站输入文件