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题。
题意:给出一组电话号码,判断其中一个号码是否另一个号码的前缀。
分析:具体看代码注释。
代码:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值