叉树遍历算法的应用.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
叉树遍历算法的应用

6.3.5 二叉树遍历算法的应用 1. 统计二叉树中结点总数numb 假设用中根遍历方法统计结点总个数,设计一个公有函数作为对外接口,调用同名的私有递归函数实现此功能。 //公有函数 void BiTree::injishu() { int numb=0; injishu( root, int numb); // 调用私有函数 cout\n numb=numb ; // 输出结果 } 算法 6.8 //私有函数 void BiTree::injishu(NodeType *t, int m) { if (t!=NULL) { injishu(t-lch,m); // 中根遍历左子树 coutt-data” ”; // 访问根结点 m++; // 结点记数 injishu(t-rch,m); // 中根遍历右子树 }} 2.求二叉树的树深 首先看如下算法: int BiTree::height(NodeType *p) { if (p == NULL) return 0; else { int hl=height(p-lch); int hr=height(p-rch); return 1 + (hlhr?hl:hr); //1加上hl和hr的较大值 } } 2.求二叉树的树深 首先看如下算法: int BiTree::height(NodeType *p) { if (p == NULL) return 0; else { int hl=height(p-lch); int hr=height(p-rch); return 1 + (hlhr?hl:hr); //1加上hl和hr的较大值 } } 3.二叉树的复制与拷贝 假设已经有了一棵已经建立好的二叉树,怎样由它来复制另一个相同的二叉树?下列为私有递归函数,即复制二叉树的函数。 NodeType *BiTree::copy(NodeType *p) { NodeType *q; if(p==NULL) return NULL; else{ q=new NodeType; q-data=p-data; q-lch=copy(p-lch); q-rch=copy(p-rch); return q; } }; 6.4 线索二叉树 如果二叉树分别进行先根遍历中根遍历和后根遍历,那么可得相应的序列.这实质上是对一个非线性结构进行的线性化操作。 有时为了运算方便,需要记下树中结点按某次序遍历下的前趋和后继结点。能否在二叉链表中保存这种信息呢? 6.4.1 线索二叉树的基本概念 具有n个结点的二叉树,有n-1条边,正是这些边指向其左孩子、右孩子。这意味着在二叉链表的2n个孩子指针域中只用到了n+1个域,还有另外n+1个指针域为空,或被闲置。 现设法将这些空闲的指针域利用起来。 当某结点无左孩子时,令左指针指向它的前趋结点;当该结点无右孩子时,令右指针指向它的后继结点。 为了严格区分结点的孩子指针域究竟指向孩子结点还是指向前趋或后继结点,需在原结点结构中增加两个标志域。 对一个已建好的二叉树的二叉链表进行线索化时规定(针对p结点): (1)p有左孩子时,则令左特征域p-ltag=0; (2)p无左孩子时,令p-ltag=1; 并且让p-lch指向p的前趋结点; (3)p有右孩子时,令p-rtag=0; (4)p无右孩子时,令p-rtag=1; 并且让p-rch指向p的后继结点。 6.5 二叉树、树和森林 6.5.1 树的存贮结构 6.5.2

文档评论(0)

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

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

1亿VIP精品文档

相关文档