第6章 树和二叉树 作业(参考答案) 下载本文

第六章 树和二叉树 作业 参考答案

1、假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。请画出该树。

E B F A D H C G I K J

2、假设一棵二叉树的层序序列为ABCDEFGHIJ和中序序列为DBGEHJACIF。请画出该树。

A B C D E F G H I J

3、已知一算术表达式的中缀形式为 A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为什么?

-+A*BC/DE。

4、设有正文AADBAACACCDACACAAD,字符集为A,B,C,D,设计一套二进制编码,使得上述正文的编码最短。

字符A,B,C,D出现的次数为9,1,5,3。其哈夫曼编码如下A:1,B:000,C:01,D:001

5、下列是先序遍历二叉树的非递归子程序,请阅读子程序,填充空格,使其成为完整的算法。 void example(b) btree *b; {

btree *stack[20], *p; int top; if (b!=null) { top=1; stack[top]=b; while (top>0) {

p=stack[top]; top--; printf(“%d”,p->data);

0 1 0 1 9 0 5 1 1 3 哈夫曼编码树

if (p->rchild!=null){

(1)___; (2)___; }

if (p->lchild!=null) {

(3)___; (4)__; } } } }

(1)top++

(2) stack[top]=p->rchild (3)top++

(4)stack[top]=p->lchild