章树和叉树(00002).docVIP

  1. 1、本文档共23页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 树和二叉树 6.27 [问题] 假设一棵二叉树的先序序列为EBADCFHGIKJ和中序序列为ABCDEFGHIJK。请画出该树。 [解答]? 6.29 [问题] 假设一棵二叉树的层序序列为ABCDEFGHIJ和中序序列为DBGEHJACIF。请画出该树。 ? 6.37 [问题] 试利用栈的基本操作写出先序遍历二叉树的非递归算法。 [解答提示] 改写教材p.130-131算法6.2或6.3。 将if (!visit(p-data)) return ERROR;提前。 ? 6.43 [问题] 编写递归算法,将二叉树中所有结点的左、右子树相互交换。 Status Exchange-lr(Bitree bt){ //将bt所指二叉树中所有结点的左、右子树相互交换 if (bt (bt-lchild || bt-rchild)) { bt-lchild-bt-rchild; Exchange-lr(bt-lchild); Exchange-lr(bt-rchild); } return OK; }//Exchange-lr ? 6.45 [问题] 编写递归算法,对于二叉树中每一个元素值为x的结点,删去以它为根的子树,并释放相应的空间。 [解答] Status Del-subtree(Bitree bt){ //删除bt所指二叉树,并释放相应的空间 if (bt) { Del-subtree(bt-lchild); Del-subtree(bt-rchild); free(bt); } return OK; }//Del-subtree ? Status Search-del(Bitree bt, TelemType x){ //在bt所指的二叉树中,查找所有元素值为x的结点,并删除以它为根的子树 if (bt){ if (bt-data=x) Del-subtree(bt); else { Search-Del(bt-lchild, x); Search-Del(bt-rchild, x); } } return OK; }//Search-Del ? 第六章 树和二叉树 6.33 int Is_Descendant_C(int u,int v)//在孩子存储结构上判断u是否v的子孙,是则返回1,否则返回0 { ??if(u==v) return 1; ??else ??{ ????if(L[v]) ??????if (Is_Descendant(u,L[v])) return 1; ????if(R[v]) ??????if (Is_Descendant(u,R[v])) return 1; //这是个递归算法 ??} ??return 0; }//Is_Descendant_C 6.34 int Is_Descendant_P(int u,int v)//在双亲存储结构上判断u是否v的子孙,是则返回1,否则返回0 { ??for(p=u;p!=vp;p=T[p]); ??if(p==v) return 1; ??else return 0; }//Is_Descendant_P 6.35 这一题根本不需要写什么算法,见书后注释:两个整数的值是相等的. 6.36 int Bitree_Sim(Bitree B1,Bitree B2)//判断两棵树是否相似的递归算法 { ??if(!B1!B2) return 1; ??else if(B1B2Bitree_Sim(B1-lchild,B2-lchild)Bitree_Sim(B1-rchild,B2-rchild)) ????return 1; ??else return 0; }//Bitree_Sim 6.37 void PreOrder_NotRecurve(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_NotRecurve 6.38 typedef struct { ???????????????? BTNode* ptr; ????????

文档评论(0)

phl805 + 关注
实名认证
文档贡献者

建筑从业资格证持证人

该用户很懒,什么也没介绍

领域认证该用户于2023年05月12日上传了建筑从业资格证

1亿VIP精品文档

相关文档