2013-2014 学年二学期数据结构期末考试模拟试卷(1~6 卷)一、应用题 (3 小题 ,共 24 分) 1.已知某字符串S 中共有 8 种字符,各种字符分别出现2 次、 1 次、 4 次、 5 次、 7 次、 3次、 4 次和 9 次,对该字符串用[0 ,1] 进行前缀编码,问该字符串的编码至少有多少位
【解答】以各字符出现的次数作为叶子结点的权值构造的哈夫曼编码树如图所示
其带权路径长度 =2×5+1×5+3×4+5×3+9×2+4×3+4×3+7×2=98,所以,该字符串的编码长度至少为 98 位
2.已知关键码序列为(Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec),散列表的地址空间为0~16,设散列函数为H(x)= [ i/2 」( 取下整数 ) ,其中 i 为关键码中第一个字母在字母表中的序号,采用链地址法处理冲突构造散列表,并求等概率情况下查找成功的平均查找长度
【解答】 H(Jan)=10/2=5, H(Feb)=6/2=3, H(Mar)=13/2=6, H(Apr)=1/2=0 H(May)=13/2=6, H(Jun)=10/25, H(Jul)=10/25, H(Aug)=1/2=0 H(Sep)=19/2=8, H(Oct) =15/2=7, H(Nov) =14/2=7, H(Dec) =4/2=2采用链地址法处理冲突,得到的开散列表如下:平均查找长度 =(1×7+2×4+3×1)/12=18/123.分析下面各程序段的时间复杂度(1) s1(int n) { int p=1,s=0; for (i=1;i