-1

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

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

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

列出树中的所有数字

在树中搜索某个数字

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

添加某个新号码

删除某个号码

谁能向我解释这意味着什么?我知道二叉搜索树是什么,但不明白这里的意思。

4

1 回答 1

2

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

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

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

希望这可以帮助!

于 2013-05-03T19:39:31.057 回答