《第六章作业及答案(3页).doc》由会员分享,可在线阅读,更多相关《第六章作业及答案(3页).doc(3页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、-第六章作业及答案-第 3 页第六章作业一、选择题1.若不考虑结点的数据信息的组合情况,具有3个结点的树共有种( )形态,而二叉树共有( )种形态。 A.2 B.3 C.4 D.5 2.对任何一棵二叉树,若n0,n1,n2分别是度为0,1,2的结点的个数,则n0= ( ) A.n1+1 B.n1+n2 C.n2+1 D.2n1+1 3.已知某非空二叉树采用顺序存储结构,树中结点的数据信息依次存放在一个一维数组中,即 ABCDFEGH,该二叉树的中序遍历序列为 ( ) A.G,D,B,A,F,H,C,E B.G,B,D,A,F,H,C,E C.B,D,G,A,F,H,C,E D.B,G,D,A,
2、F,H,C,E4、具有65个结点的完全二叉树的高度为()。(根的层次号为1)A8 B7 C6 D55、在有N个叶子结点的哈夫曼树中,其结点总数为( )。A 不确定 B 2N C 2N+1 D 2N-16、以二叉链表作为二叉树存储结构,在有N个结点的二叉链表中,值为非空的链域的个数为( )。A N-1 B 2N-1 C N+1 D 2N+17、树的后根遍历序列等同于该树对应的二叉树的( ).A. 先序序列 B. 中序序列 C. 后序序列 8、已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则完全二叉树的结点个数最多是( )A39 B.52 C.111 D.1199、在一棵度为4的树T中,
3、若有20个度为4的结点,10个度为3的结点,1个度为2的结点,10个度为1的结点,则树T的叶节点个数是( )A41 B.82 C.113 D.122二、填空题。1、对于一个具有N个结点的二叉树,当它为一颗 _ 二叉树时,具有最小高度。2、对于一颗具有N个结点的二叉树,当进行链接存储时,其二叉链表中的指针域的总数为 _ 个, 其中_个用于链接孩子结点, _ 个空闲着。3、一颗深度为K的满二叉树的结点总数为 _ ,一颗深度为K的完全二叉树的结点总数的最小值为 _ ,最大值为 _ 。4、已知一棵二叉树的前序序列为ABDFCE,中序序列为DFBACE,后序序列为 三、应用题。ABCDEFGHIJ1、已
4、知一棵树二叉如下,请分别写出按前序、中序、后序遍历时得到的结点序列,并将该二叉树还原成森林。2 假设用于通讯的电文仅由8个字母组成,字母在电文中出现的频率分别为:0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10请为这8个字母设计哈夫曼编码。五、算法设计题1. 已知二叉树按照二叉链表方式存储,编写算法,计算二叉树中叶子结点的数目。2. 编写算法,求二叉树的深度。*3. 已知二叉树按照二叉链表方式存储,利用栈的基本操作写出先序遍历非递归形式的算法。参考答案:一 1 D 2 C 3 D 4 B 5 D 6 A 7 B 8.c 9B二 1 完全二叉树 2 2N N-1 N
5、+1 3 2k-1 2k-1 2k-1 4 FDBECA三 1 void search(BiTree &T)if(T)cou+;if(T-lchild!=NULL&T-rchild!=NULL) count+; search(T-lchild); search(T-rchild);2 int Depth (BiTree T ) / 返回二叉树的深度if ( !T ) depthval = 0; else depthLeft = Depth( T-lchild ); depthRight= Depth( T-rchild ); depthval = 1 + (depthLeft depthRight ? depthLeft : depthRight); return depthval;3 void PreOrder_Nonrecursive(Bitree T)/先序遍历二叉树的非递归算法InitStack(S);Push(S,T); /根指针进栈while(!StackEmpty(S)while(Gettop(S,p)&p)visit(p-data);push(S,p-lchild); /向左走到尽头pop(S,p);if(!StackEmpty(S) pop(S,p); push(S,p-rchild); /向右一步/while/PreOrder_Nonrecursive
限制150内