标签: n-ary-tree

C中的N-ary树

哪个是用C语言实现N-ary树的巧妙实现?

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

struct task {
  char command[MAX_LENGTH];
  int required_time;
};
Run Code Online (Sandbox Code Playgroud)

c struct abstract-data-type n-ary-tree

17
推荐指数
2
解决办法
2万
查看次数

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

受到这个问题的启发,我想尝试用最新的思考这个挑战,使用F#

我的方法可能完全偏离正轨,但在解决这个问题的过程中,我试图得到一个数字0-9的所有排列的列表.

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

type Node = 
    | Branch of (int * Node list)
    | Leaf of int
Run Code Online (Sandbox Code Playgroud)

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

我现在的问题是我无法弄清楚如何遍历这个树并将每个叶子的'path'作为int提取出来.令我困惑的事情是我需要匹配单个节点,但我的"外部"功能需要采用节点列表.

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

let test = Branch(3, [Branch(2, [Leaf(1)]);Branch(1, [Leaf(2)])])

let rec visitor lst acc = 
    let inner n = 
        match n with
        | Leaf(h) -> acc * 10 + h
        | Branch(h, t) -> visitor t (acc * 10 + h)
    List.map inner lst |> List.sum

visitor [test] 0 //-> gives 633 (which is 321 + 312)
Run Code Online (Sandbox Code Playgroud)

我甚至不确定这是尾递归. …

algorithm f# n-ary-tree

6
推荐指数
1
解决办法
2364
查看次数

使用KineticJS绘制有根的树

我正在开发一个webapp,需要动态绘制有根的n-ary树,以绘制技能之间的先决条件关系.它实际上已经这样做了,你可以在这里看到一个例子.我试图改进它,使用PyMag中列出的算法,我必须承认,我有点迷失,试图找出如何使其适应我的JavaScript代码.

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

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

  • gon.skills_map [0]是字符串中技能的标题
  • gon.skills_map [1]是技能的URL,因此每个节点都是可点击的
  • gon.skills_map [2]是一个后续条件数组(它是我所谓的前提条件的反面)数组,格式完全相同
  • gon.skills_map [3]是先决条件关系的评级(影响线条粗细)

javascript python n-ary-tree kineticjs

5
推荐指数
1
解决办法
1871
查看次数

做一个n-ary树的"Ruby"方式

我正在编写Ruby脚本,并希望使用n-ary树数据结构.

是否有一个很好的实现可用作源代码?谢谢.

ruby tree n-ary-tree

3
推荐指数
2
解决办法
5021
查看次数

F#:递归收集并过滤N-ary树

这伤害了我的大脑!

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

这是一个示例树结构

type Tree =
| Node of int * Tree list
Run Code Online (Sandbox Code Playgroud)

这是一个测试样本树:

let test = 
    Node((1,
            [Node(2,
                    [Node(3,[]);
                    Node(3,[])]);
            Node(3,[])]))
Run Code Online (Sandbox Code Playgroud)

使用和int值为3的节点收集和过滤应该为您提供如下输出:

[Node(3,[]);Node(3,[]);Node(3,[])]
Run Code Online (Sandbox Code Playgroud)

f# n-ary-tree

3
推荐指数
1
解决办法
1564
查看次数

无法将我的头包裹在一个n-ary树上

我的工作,我从文件中读取连接站的列表,并在格式创建一个HashMap(键=字符串站,值= ArrayList的连接站)到目前为止好一门功课的项目.

然后,用户可以选择本地站,此时我正在尝试创建树以表示来自家中的所有可访问站.树可以看起来像:

           HomeStation
           /      \
    station1      station2
                /   |     \
        station3 station4 station 5
Run Code Online (Sandbox Code Playgroud)

但我无法理解如何将这些站点添加到树以外的根和它的子节点之外.所以任何人都可以给我一些关于我应该做什么/看什么的指示.

到目前为止我的TreeNode类:

/**
* TreeNode class 
* Represents a N-ary tree node
* Uses ArrayList to hold the children.
* @author Ásta B. Hansen (11038973)
*
*/
public class TreeNode {
    private String station;
    private TreeNode parent;
    private List<TreeNode> children;

    /**
     * Constructor
     * @param station - the station to be stored in the node
     */
    public TreeNode(String station) {
        this.station = station;
        parent = …
Run Code Online (Sandbox Code Playgroud)

java tree n-ary-tree

1
推荐指数
1
解决办法
4131
查看次数