`
huobengle
  • 浏览: 857984 次
文章分类
社区版块
存档分类
最新评论

POJ-3630-Phone List-Trie树(键树、数字查找树、基数树)

 
阅读更多

先看下键树的有关基础知识。
键树中的每个结点不是包含一个关键字,而是只包含组成关键字的符号。例如,若关键字是数值,则结点中只包含一个数位;若关键字是单词,则结点中只包含一个字母字符。这种树会给某种类型关键字的表的查找带来方便。
通常用树的多重链表表示键树。下图是一个例子。

在这个例子中,每个关键字均由a-z这26个小写字母组成。为了表示这些关键字,每上结点均有一个大小为26的指针数组。上图中,一共表示了"abc","d","da","dda"这四个字符串。
键树具有以下性质:
1)关键字的符号的种数决定了指针数组branch的大小,如上例的大小为26;
2)branch数组的下标index代表该符号相对'a'对位置;
3)在结点中采用一个bool变量,确定是否已构成了一个关键字;
4)插入、查找的复杂度均为O(len),len为关键字符串的长度。

然后解答POJ3630题。
题意:给出一组电话号码,判断其中一个号码是否另一个号码的前缀。
分析:具体看代码注释。
代码:

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics