问题标签 [multiway-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 回答
1710 浏览

f# - f#中多路树的折叠/递归

我正在尝试将 Brian 的二叉树折叠 ( http://lorgonblog.wordpress.com/2008/04/06/catamorphisms-part-two/ ) 用于申请多路树。

来自 Brian 的博客的总结:

数据结构:

二叉树折叠函数

例子

多路树版本 [不(完全)工作]

数据结构

折叠功能

示例 1 返回 28 - 似乎有效

示例 2

不运行

最初我认为MFoldTree需要一个map.something地方,但我让它与@操作员一起工作。

对第二个示例的任何帮助和/或纠正我在MFoldTree函数中所做的事情都会很棒!

干杯

杜西奥德

0 投票
6 回答
27772 浏览

c# - 如何实现非二叉树

我在实现非二叉树时遇到问题,其中根节点可以有任意数量的子节点。基本上,我想要一些关于如何使用它的想法,因为我确实编写了一些代码,但我仍然坚持下一步该做什么。顺便说一句,我根本不能使用任何 Collections 类。我只能使用系统。

} 在此处输入图像描述

0 投票
2 回答
2102 浏览

tree - OCaml 中多路树的最大值

我是一名 IT 学生,也是 OCaml 的新手

最近,为了考试而学习,我发现了这个练习。

给定: type 'a tree = Tree of 'a * 'a tree list

定义一个函数 mtree : 'a tree ->'a,它返回多路树中所有节点的最大值,遵循 OCaml 中通常的顺序关系 (<=)

我来做下面这样的事情,当然,这是行不通的。

在阅读对此的答案后,我将发布固定代码。

想法是一样的,折叠列表比较节点,使用我的本地函数这样做,并通过在连续级别的节点列表上调用函数本身来遍历树。

但是,仍然无法正常工作。现在抱怨 fold_left 部分中的 max_node 。

在这里我肯定迷路了,因为我不明白为什么它期望返回一棵树

0 投票
0 回答
201 浏览

java - 具有鼠标侦听器的交互式多向树/图形小程序

我有一个图表,其中节点有 0 个或更多后继者和 0 个或更多前任者。我想进行可视化(最好通过 JAVA),这样:

  1. 应该有一个搜索框。如果我输入节点的 ID,则该节点应出现在屏幕上。
  2. 如果我左键单击一个节点,它的子节点应该出现在节点下方(以树表示)。
  3. 如果我右键单击该节点,那么它的父节点应该出现在节点上方。
  4. 如果我双击任何节点,那么它应该与搜索节点具有相同的效果(如第 1 点)

我想知道我应该遵循什么方法(任何包等)?是否有一些类似的实现我可以重用其代码?

0 投票
3 回答
481 浏览

ada - Ada 2012 多路树,创建根节点

我正在使用多路树的有界版本。我可以创建我的元素类型并实例化我的类型的树,但是如何创建根?我看到了几种形式的 Insert_Child。我使用 Insert_Child 的所有尝试都失败了,因为我使用 No_Element 作为 Parent 或 Before 参数。

有没有人有使用多路树包的例子,他们可以指出我?

如果重要的话,我正在使用免费的 Gnat 版本的 Ada。

0 投票
1 回答
144 浏览

map - 修剪多路树 - 什么是更好的解决方案?

我想知道是否有人可以为以下问题提供更简化的解决方案或改进我的代码。

假设我们有一棵树,其分支的深度为“d”,我们想要修剪这棵树,这样我们在深度 d 处保留n”个分支,然后在深度d-1处保留另一个 n 个分支;然后在d-2等另一个n分支...

在我的解决方案中,我需要使用 adictionary来跟踪分支的数量和ref可变深度以跟踪和降低深度级别

很想知道一个更简单、更优雅的解决方案,或者任何提示/技巧来改进我所拥有的

数据结构

测试树

修剪树功能

结果

使用 Thomas P 的“printTree”函数可以很好地可视化

输出 -

输出 -

所以,如果你已经做到了这一步 - 有什么建议吗?

干杯!

0 投票
3 回答
1313 浏览

prolog - PROLOG(如何对多路树进行后排序)

我正在为如下的 Prolog 作业而苦苦挣扎,

Prolog 使用通用树,而不是二叉树。一个例子是

对此难题的任何帮助表示赞赏。

0 投票
1 回答
250 浏览

java - b-tree 丰满度(百分比)

我目前正忙于在 JAVA 中实现B-Tree 。其中一种方法要求我以百分比形式返回完整树的完整度。该百分比应不超过 100,例如,如果返回 50,则表示树已满 50%。一棵空树是 0% 满的。

这是我正在使用的节点类

总结:请帮我实现以下方法:

任何建议、帮助和/或代码将不胜感激。

0 投票
1 回答
1643 浏览

java - “简单”的 Trie 实现

我需要为一个大学项目实现一个Trie(Java)。Trie 应该能够添加和删除字符串(对于第 1 阶段)。

我每天(过去几天)都花了几个小时试图弄清楚如何做到这一点,但每次都惨遭失败。

我需要一些帮助,互联网上的示例和我的教科书(Adam Drozdek 的 Java 中的数据结构和算法)没有帮助。

信息

  1. 我正在使用的节点类:

    /li>
  2. 这是我需要遵循的插入伪代码:(警告它非常模糊)

    /li>
  3. 我需要实现以下方法。

    /li>
  4. 我找不到删除的伪代码,但如果插入不起作用,删除不会帮助我。

  5. 这是我需要实现的 Trie 外观的图像。

在此处输入图像描述

  1. 我知道如果像这样实施,Trie 仍然会效率低下,但目前我不必担心这一点。

  2. 这本书提供了一个类似于我需要做的实现,但不使用单词 char ('$') 的结尾,并且只将没有前缀的单词存储在子节点中http://mathcs.duq.edu/drozdek/DSinJava/SpellCheck.java

约束

  1. 我需要在 JAVA 中实现 trie。
  2. 我可能不会导入或使用任何 Java 的内置数据结构。(即没有 Map、HashMap、ArrayList 等)
  3. 我可以使用数组、Java 原始类型和 Java 字符串。
  4. Trie 必须使用$(美元)符号来表示词尾。(见下图)

在此处输入图像描述

  1. 我可以假设现在$将插入包含该符号的单词。
  2. 我需要以与本书相同的风格实现 Trie it。
  3. 单词的大小写无关紧要,即。所有单词都将被视为小写
  4. Trie 应该只存储词尾字符和适用于单词而不是整个字母表的字符(如某些实现)。

我不希望任何人为我执行实施(除非他们有一个躺在身边:P)我真的需要帮助。

0 投票
1 回答
311 浏览

c - 孩子的多路树内存分配

我正在尝试在 C 中构建一个多路树。我被困在为孩子分配内存上。我有一个包含每个节点的父亲的向量。这是我的代码:

这是节点的结构:

我不确定问题是否出在内存分配上。按照我的逻辑,它应该可以工作。