问答题 [预备知识] ①对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合{a,b,c,d}及其权值2、7、4、5,可构造如图3所示的最优二叉树和相应的结构数组Ht(数组元素Ht[0]不用)(见表5)。
【正确答案】
【答案解析】(1)code[cdlen]='/0'或code[cdlen]=0 (2)Ht[p].par- ent (3)--cdlen或等价形式 (4)*buff=='0'或等价形式 (5)buff--或等价形式 [解析] (1)根据注释的提示,可知此小段代码的作用是把code字符串保存起来,结合下一句,可知应给code字符串添加一个结束符'0'。(2)将指针指向当前结点的父结点。(3)将code指针前移一位。(4)如果前缀编码为,'0'进入左子树。(5)注意下一个语句,Prinf(“%c”,Ht[pre].ch);其参数是pre,内层循环中有pre=p,这样做的目的是当Ht[p].lchild或 Ht[p]. rchild等于0时,不把这—层链人结果。