数据结构 邓欣-ch6.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文档。上传文档
查看更多
* 中序遍历算法: #includestdio.h #includestdlib.h #define NULL 0 Typedef struct node{ char data; struct node *leftchild,*rightchild; }TREENODE; TREENODE *root; TREENODE *creat_tree(); Void inorder(TREENODE *); * TREENODE *creat_tree() { TREENODE *t; char c; c=getchar(); if(c= =‘#’) return(NULL); else{ t=(TREENODE *)malloc(sizeof(TREENODE)) t – data=c; t –leftchild=create_tree(); t –rightchild=create –tree(); } return(t); } AB#D##C## * Void inorder(TREENODE *p) { if(p!=NULL) { inorder(p–leftchild); printf(“%c”,p–data) inorder(p–rightchild); } } * 利用二叉树后序遍历计算二叉树结点个数 int Size (TREENODE *p) { if ( p == NULL ) return 0; else return 1 + Size ( p→leftChild ) + Size ( p→rightChild ); } 应用二叉树遍历的事例 * int Height ( TREENODE *p ) const { if ( p == NULL ) return 0; else return 1 + Max (Height ( p→leftChild ), Height ((p→rightChild ) ); } 二叉树的高度 * 遍历的其他应用 Copy Interchange all left and right subtrees Traversal level by level * 树的存储表示 ? 广义表表示(不要求) 树的广义表表示 (结点的utype域没有画出) 树与森林 * ? 双亲表示 * ? 左子女-右兄弟表示法 第一种解决方案 第二种解决方案 树的左子女-右兄弟表示 data child1 child2 child3 childd data firstChild nextSibling * 森林与二叉树的转换 森林与二叉树的对应关系 * (1) 森林转化成二叉树的规则 ? 若F为空,即n = 0,则 对应的二叉树B为空二叉树。 ? 若F不空,则 对应二叉树B的根root (B)是F中第一棵树T1的根root (T1); 其左子树为B (T11, T12, …, T1m),其中,T11, T12, …, T1m是root (T1)的子树; 其右子树为B (T2, T3, …, Tn),其中,T2, T3, …, Tn是除T1外其它树构成的森林。 * (2) 二叉树转换为森林的规则 ? 如果B为空,则 对应的森林F也为空。 ? 如果B非空,则 F中第一棵树T1的根为root; T1的根的子树森林{ T11, T12, …, T1m }是由 root 的左子树 LB 转换而来,F 中除了 T1 之外 其余的树组成的森林{ T2, T3, …, Tn } 是由 root 的右子树 RB 转换而成的森林。 * 树的遍历 树的二叉树表示 及对应遍历方式 深度优先遍历 * 二叉树的计数 由二叉树的前序序列和中序序列可唯一地确定一棵二叉树。例, 前序序列 { ABHFDECKG } 和中序序列 { HBDFAEKCG }, 构造二叉树过程如下: * 如果前序序列固定不变,给出不同的中序序列,可得到不同的二叉树。 问题

文档评论(0)

精品文库 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档