【问题标题】:Looking for a good introduction on trie [closed]寻找关于特里的一个很好的介绍[关闭]
【发布时间】:2012-05-27 22:01:42
【问题描述】:

我在Tries 上寻找一个好的介绍/教程。
我发现谷歌搜索的大多数链接对我来说要么过于简洁和抽象,要么过于琐碎。
有人可以提供一个很好的 Java 示例供我学习吗?

谢谢

【问题讨论】:

标签: java algorithm data-structures trie


【解决方案1】:

谷歌搜索发现this blog 包含一系列Java 文章。

但我建议买一本教科书。您最喜欢的在线书店有很多面向 Java 的数据结构和算法书籍。

【讨论】:

  • 我会阅读您的链接。你也有推荐的教科书,专门有一节专门介绍 Trie 吗?
  • @Jim - 不,我没有。但是有些网上书店允许你查看教科书的目录...
  • 其实你链接的博客还不错!来自我的 +1
  • 我这边也是+1....这确实是一个很好的来源:)
【解决方案2】:

我最近用 Java 编写了 TriePatricia Trie。它们的编写易于理解。所有的数据结构都是根据它们的维基百科描述构建的。

相关类:Radix TrieSuffix TrieTrie Map

如果您有任何问题,请随时提出。

【讨论】:

  • 谢谢。我会读这个。你有一些关于 trie 的背景信息的参考吗?
  • 我主要使用维基百科的描述和图片。我用了另一个网站,我看看能不能找到。
  • 我正在查看您的代码。我想知道它不会创建完整的树吗?
  • 我不确定我知道你所说的完整树是什么意思。它为每个字符串中的每个唯一字母创建一个节点。
  • trie 是一棵前缀树,因此输入到带有公共前缀的 trie 中的所有字符串将共享根节点外的相同节点。如果 trie 输入了两个名为 bat 和 bag 的字符串。根将有一个节点挂起,其值为“b”,该节点有一个值为“a”的子节点。 “a”节点将有两个子节点,其值为“t”和“g”。
【解决方案3】:

【讨论】:

  • 谢谢,但该链接是关于使用 Trie 改进 Levenstein 的,它假设您或多或少知道 Trie 是什么,它是在 Python 中,我不知道都知道
  • 帮助自己...阅读那篇文章会告诉您有关什么是 trie 以及它是如何工作的所有信息
  • 精彩阅读 - 感谢分享。
【解决方案4】:

我推荐 Stefan Nilsson 的博士。 1996 年的论文,Radix Sorting & Searching(搜索部分就是您要查找的内容。)对于研究出版物而言,这很容易阅读,并且包含大量有关尝试的理论和实践。

这些示例是用 C 语言编写的,而不是 Java 语言,但如果您了解 Java,理解它们应该不会有太大困难。

【讨论】:

    【解决方案5】:

    在 trie 上发现这个 topcoder 链接非常有用:

    http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=usingTries

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-12
      • 1970-01-01
      • 2011-01-21
      • 1970-01-01
      相关资源
      最近更新 更多