首页 > 试题广场 >

(基数序)给定两个串a=a0a1sub...

[问答题]
(基数序)给定两个串a=a0a1...ap和b=b0b1...bq,这里每个ai和bj是以字符集的某种次序出现的,如果下面两种规则之一成立,就称串a按字典序小于串b:
1.存在一个整数j,其中,是的对所有的i=0,1,...,j-1,ai=bi成立,且aj<bj
2.p<q,且对所有的i=0,1,...,p,ai=bi
    例如,如果a和b是位串,那么10100<10110(有规则1,取j=3),10100<101000(由规则2)。这种次序类似于英语字典中使用的排序。
基数树数据结构如下图所示,这个树存储了位串1011,10,011,100和0。当对一个关键字a=a0a1...ap进行查找时,在深度为i的一个节点处,如果ai=0,则走左侧;如果ai=1,则走右侧。设S是一个不同位串组成的集合,各个串长度值和为n。说明如何使用一棵基数树在时间内按字典序对S进行排序。对于下图的例子,排序输出的应该是序列0,011,10,100,1011。

这道题你会答吗?花几分钟告诉大家答案吧!