数据结构课后答案个人.doc

数据结构课后答案个人.doc

ID:58854195

大小:97.00 KB

页数:16页

时间:2020-09-23

数据结构课后答案个人.doc_第1页
数据结构课后答案个人.doc_第2页
数据结构课后答案个人.doc_第3页
数据结构课后答案个人.doc_第4页
数据结构课后答案个人.doc_第5页
资源描述:

《数据结构课后答案个人.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、数据结构作业(6—9章)理学院信计1001孙建伟6.4一棵深度为H的满k叉树有如下性质:第H层上的结点都是叶子结点,其余各层上每个结点都有k棵非空子树。如果按层次顺序从1开始对全部结点编号,问:(1)各层的结点数目是多少?(2)编号为p的结点的父结点(若存在)的编号是多少?(3)编号为p的结点的第i个儿子结点(若存在)的编号是多少?(4)编号为p的结点有右兄弟的条件是什么?其右兄弟的编号是多少?解:(1)(2)如果p是其双亲的最小的孩子(右孩子),则p减去根结点的一个结点,应是k的整数倍,该整数即为所在的组

2、数,每一组为一棵满k叉树,正好应为双亲结点的编号。如果p是其双亲的最大的孩子(左孩子),则p+k-1为其最小的弟弟,再减去一个根结点,除以k,即为其双亲结点的编号。综合来说,对于p是左孩子的情况,i=(p+k-2)/k;对于p是右孩子的情况,i=(p-1)/k如果左孩子的编号为p,则其右孩子编号必为p+k-1,所以,其双亲结点的编号为向下取整,如1.5向下取整为1(3)结点p的右孩子的编号为kp+1,左孩子的编号为kp+1-k+1=k(p-1)+2,第i个孩子的编号为k(p-1)+2+i-1=kp-k+i+

3、1。(4)当(p-1)%k!=0时,结点p有右兄弟,其右兄弟的编号为p+1。6.6已知在一棵含有n个结点的树中,只有度为k的分支结点和度为0的叶子结点。试求该树含有的叶子节点数目。解:利用上题结论易得结果。设度为k的结点个数为,则总结点数为。叶子结点的数目应等于总结点数减去度不为0的结点的数目,即6.8证明:一棵满k叉树上的叶子结点数和非叶子结点数之间满足以下关系:解:一棵满k叉树的最后一层(深度为h)的结点数(叶子结点数)为,其总结点数为,则非叶子结点数,从而得6.13假设n和m为二叉树中两结点,用1、0

4、或#(分别表示肯定、恰恰相反或不一定)填写下表:问已知前序遍历时n在m前?中序遍历时n在m前?后序遍历时n在m前?n在m左方   n在m右左方   n是m祖先   n是m子孙   注:如果(1)离a和b最近的共同祖先p存在,且(2)a在p的左子树中,b在p的右子树中,则称a在b的左方(即b在a的右方)。6.26解:不妨设这8个结点为A、B、C、D、E、F、G、H,其相应的权为7、19、2、6、32、3、21、10。A:1101B:01C:11111D:1110E:10F:11110G:00H:1100采用这

5、种方式编码,电文最短。6.33解:intVisit(intu,intv){if(u==v)return1;if(L[v]==0){//左子树不存在if(R[v]==0)//右子树也不存在return0;else{//右子树存在,继续访问右子树if(Visit(u,R[v]))return1;elsereturn0;}}else{//左子树存在if(Visit(u,L[v]))//左子树中存在目标return1;else{//左子树中没有目标,需访问右子树if(R[v]==0)//没有右子树return0;e

6、lse{//右子树存在,继续访问右子树if(Visit(u,R[v]))return1;elsereturn0;}}}}6.37解://先序遍历的非递归算法StatusPOTraverse(BiTree&T,Status(*Visit)(TElemTypee)){BiTreep;Stacks;InitStack(s);p=T;while(p

7、

8、!StackEmpty(s)){if(p){//如果根指针不空,访问根结点,//右指针域压栈,继续遍历左子树if(!Visit(p->data))returnERRO

9、R;Push(s,p->rchild);p=p->lchild;}//根指针已空,本子树已遍历完毕,//退栈返回上一层,继续遍历未曾访问的结点elsePop(s,p);}returnOK;}6.42解://求二叉树中叶子结点的数目StatusPOLeafNodeNum(int&i,BiTree&T){if(T){if(!T->lchild&&!T->rchild)i++;POLeafNodeNum(i,T->lchild);POLeafNodeNum(i,T->rchild);}returnOK;}6.43

10、解://按先序交换二叉树的左右子树StatusExchangeBiTree(BiTree&T){BiTreep;if(T){p=T->lchild;T->lchild=T->rchild;T->rchild=p;ExchangeBiTree(T->lchild);ExchangeBiTree(T->rchild);}returnOK;}6.45解://删除以元素值为x的结点为根的子树StatusDelChildT

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。