【问题标题】:What is a decimal search tree?什么是十进制搜索树?
【发布时间】:2013-05-03 19:31:58
【问题描述】:

我被分配了以下作业,但我并不完全理解:

编写一个程序来实现“十进制搜索树”,这是一种用于在图书馆、警察局、交通控制等领域进行搜索的流行工具......

十进制搜索树是一棵树,其中每个节点有 10 个孩子,每个孩子一个。该树是根据第一个程序生成的随机 3 位数字文件构建的。显然,树的深度将是 4 级。然后为用户提供以下能力:

列出树中的所有数字

在树中搜索某个数字

搜索所有以特定数字开头的数字(例如“45*”)

添加某个新号码

删除某个号码

谁能给我解释一下这是什么意思?我知道二叉搜索树是什么,但不明白这里是什么意思。

【问题讨论】:

  • 它和二叉树一样,只有10个孩子而不是2个
  • 没有十进制搜索树之类的东西。您被要求实现的数据结构称为 trie (这是正确的拼写,google it up)。我不知道你的教授为什么不使用既定的名字。

标签: c data-structures tree trie


【解决方案1】:

这看起来像是trie data structure 的特殊版本。 trie 是一种用于存储字符串(或者,在本例中为数字)的树。它的工作原理是一次一位数地分解数字。

trie 中的每个节点总共有 10 个子指针,每个数字一个。要查找 trie 中的数字,请阅读第一个数字,然后按照该数字标记的指针。然后,您查找第二个数字,然后按照该数字标记的指针。重复此过程,您最终将到达与该数字对应的 trie 中的一个节点。 trie 中的每个节点都存储一个布尔值,指示该节点是否标记单词的结尾。因此,您可以通过检查您到达的节点是否设置了该位来检查您搜索的数字是否存在于trie中。

有关更多信息,我建议您查看 Wikipedia 文章。它应该有很多有用的信息!

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-27
    • 1970-01-01
    • 1970-01-01
    • 2011-03-10
    相关资源
    最近更新 更多