我得到了以下作业,我并不完全理解:
编写一个程序来实现“十进制搜索树”,这是一种用于在图书馆,警察局,交通控制中搜索的流行工具......
十进制搜索树是一棵树,其中每个节点有10个子节点,每个节点一个。树是从第一个程序生成的随机3位数字文件构建的。显然,树的深度将是4级。然后为用户提供以下功能:
列出树中的所有数字
在树中搜索特定号码
搜索以某些数字开头的所有数字(例如“45 *”)
添加一个新号码
删除特定号码
有人可以向我解释这意味着什么吗?我知道二进制搜索树是什么,但无法理解这里的意思。
答案 0 :(得分:2)
这看起来像trie data structure的特殊版本。 trie是一种用于存储字符串(或者,在本例中为数字)的树。它的工作原理是一次拆分一位数字。
trie中的每个节点总共有10个子指针,每个数字一个。要在trie中查找数字,请读取第一个数字,然后按照该数字标记的指针。然后,查找第二个数字,然后按照该数字标记的指针。重复此过程,您最终将到达与该数字对应的trie中的节点。特里结构中的每个节点都存储一个布尔值,表示该节点是否标记了单词的结尾。因此,您可以通过检查您到达的节点是否已设置此位来检查您搜索的号码是否存在于该序列中。
有关详细信息,我建议您查看维基百科文章。它应该有很多有用的信息!
希望这有帮助!