2013-05-03 57 views
-1

我得到了下面的任务,我不完全理解:什么是十进制搜索树?

写一个程序,实行“十进制搜索树”,用于搜索在图书馆,警察局,交通管制的流行工具, ...

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

目录树中的所有数字

搜索树一定数量开始

搜索所有的数字与某些数字(如“45 *”)

添加一些新的数

删除一定数量

有人可以向我解释这是什么意思?我知道二叉搜索树是什么,但无法理解这里的含义。

+2

它与二叉树相同,只有10个孩子而不是2个 – 2013-05-03 19:34:21

+2

有没有像十进制搜索树那样的东西。你被要求实现的数据结构被称为* trie *(这是正确的拼写,谷歌它)。我不知道你的教授为什么不使用既定的名字。 – 2013-05-03 19:38:12

回答

2

这看起来像trie data structure的特殊版本。一个trie是一种用于存储字符串的树(或者在这种情况下是数字)。它的工作原理是一次拆分一位数字。

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

欲了解更多信息,我建议查看维基百科文章。它应该有很多有用的信息!

希望这会有所帮助!