如何在C中找到特里树的高度

罗杰·M

我很难编写算法来找到特里树的高度。我不知道如何开始或如何做。抱歉,如果这是一个“新手”问题,但是我很想尝试,这是我分配的唯一缺少的部分。

无论如何,这是特里树的结构:

typedef struct RegTrie * ImplTrie;
typedef struct RegTrie {
  Boolean IsItAWord; /* true if it is a word, false if it is not a word */
  ImplTrie children[ALPHABETsize];
} RegTrie;

因此,基本上,如果“ a”是一个孩子,则chidren [0]中将有一个Trie;如果“ b”不是孩子,则children [1]将为NULL。如您所见,这些字符是由链接索引隐式定义的,并且如果过去的节点的字符直到当前节点之前都构成一个单词,则'Boolean IsItAWord'将为true。

你们能给我个启示吗?我唯一知道的是,高度可以由最长单词+ 1的长度定义。但是我不知道该怎么做。我真的只想要一个解决方案,因此,找到此高度的任何方法将不胜感激。

谢谢你。

谢尔盖·卡里尼琴科(Sergey Kalinichenko)

您可以使用需要ImplTrie并返回的递归函数来完成此操作int

基本情况检查是否ImplTrie为is NULL,在这种情况下函数返回0

否则,该函数将遍历循环children,调用自身,选择最大值,然后返回最大值加1。

int height(ImplTrie t) {
    if (!t) return 0;
    int res = 0;
    for (int i = 0 ; i != ALPHABETsize ; i++) {
        int h = height(t->children[i]);
        if (h > res) {
            res = h;
        }
    }
    return res + 1;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何递归地找到特里树的高度

来自分类Dev

如何在C中找到三叉树的高度

来自分类Dev

如何在树中找到右侧孩子的高度减去左侧孩子的高度

来自分类Dev

如何在二叉搜索树中找到元素?

来自分类Dev

如何在二叉搜索树中找到元素?

来自分类Dev

如何在目录树中找到最旧的文件

来自分类Dev

如何在JavaFX节点树中找到特定的节点?

来自分类Dev

如何在jquery中找到容器的总高度?

来自分类Dev

C 编程免费的特里树

来自分类Dev

如何在C中找到argv []的长度

来自分类Dev

如何在C#中找到断点?

来自分类Dev

如何在C#中找到断点?

来自分类Dev

如何在C中找到分数的倒数?

来自分类Dev

如何在退化树中找到所有从特定顶点开始的均等路径?

来自分类Dev

如何在非二叉树中找到特定的节点?

来自分类Dev

如何在node.js依赖树中找到本机模块?

来自分类Dev

如何在二叉树中找到距给定节点k个距离的节点

来自分类Dev

如何在python中找到元素树中的元素数量?

来自分类Dev

如何在树中找到下一个元素

来自分类Dev

如何在树中找到下一个节点?

来自分类Dev

如何在二元非排序树中找到叶节点

来自分类Dev

如何在非二叉树中找到特定的节点?

来自分类Dev

如何在一个对象中找到几棵树的根

来自分类Dev

如何在二叉树中找到最长的连续路径

来自分类Dev

如何在 SML 中找到树的最小值和最大值

来自分类Dev

如何在C ++中找到基础文件类型?

来自分类Dev

如何在C#中找到泛型类的属性?

来自分类Dev

您如何在Ubuntu中找到库(C ++)?

来自分类Dev

您如何在Ubuntu中找到库(C ++)?

Related 相关文章

热门标签

归档