数据结构 第6章_树型结构.ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构 第6章_树型结构

(1)树的前序遍历:首先访问根结点,再依次按前序遍历的方式访问根结点的每一棵子树。 (2)树的后序遍历:首先按后序遍历的方式访问根结点的每一棵子树,然后再访问根结点。 (3)树的层次遍历:首先访问第一层上的根结点,然后从左到右依次访问第二层上的所有结点,再以同样的方式访问第三层上的所有结点,……,最后访问树中最低一层的所有结点。 B C D E F G A H I 前序遍历的结果: ABCEFHIGD 后序遍历的结果: BEHIFGCDA 层次遍历的结果: ABCDEFGHI 下面以指针方式的孩子表示法作为树的存储结构,分别实现树的各种遍历算法。 1、树的前序遍历的递归实现 void preorder(tree p) /*p为指向树根结点的指针*/ { int i; if (p!=NULL) /*树不为空*/ { printf(“%c”,p-data); for (i=0;im;++i) preorder(p-child[i]); //递归对各子树进行遍历 } } 2、树的后序遍历的递归实现 void postorder(tree p) /*p为指向树根结点的指针*/ { int i; if (p!=NULL) /*树不为空*/ { for (i=0;im;++i) postorder(p-child[i]); printf(%c,p-data); } } 3、按前序遍历顺序建立一棵3度树的递归算法 void createtree (tree *p ) { int i; char ch; if ((ch=getchar())= =‘ ’) *p=NULL; else { *p=(tree) malloc (sizeof(node)); /*产生树的根结点*/ (*p)-data=ch; for (i=0;im;++i) /*按前序遍历顺序依次产生每棵子树*/ createtree((*p)-child[i]); } } 4、树的层次遍历算法 在树的层次遍历过程中,对于某一层上的每个结点被访问后,应立即将其所有子女结点按从左到右的顺序依次保存起来,该层上所有结点的这些子女结点正好构成下一层的所有结点,接下来应该被访问的就是它们。显然,这里用于保存子女结点的数据结构选择队列最合适,队列中的每个元素均为在排队等待访问的结点。 4、树的层次遍历算法 由于树的层次遍历首先访问的是根结点,因此初始时队列中仅包含根结点。只要队列不为空,就意味着还有结点未被访问,遍历就必须继续进行;每次需访问一个结点时均取队头元素,访问完成后,若其子女非空,则将其所有子女按顺序依次进队;不断重复以上过程,直到队列为空。 void levelorder(tree t) {tree queue[20]; /*存放等待访问的结点队列*/ int f,r,i; /*f、r分别为队头、队尾指针*/ tree p; f=0; r=0; queue[0]=t; while (f=r) /*队列不为空*/ { p=queue[f]; f++; printf(%c,p-data); for (i=0;im;++i) if (p-child[i]) { ++r; queue[r]=p-child[i]; } } } 6.5 树的线性表示 6.5.1 树的括号表示 1、树的括号表示的规则为: (1)若树T为空树,则其括号表示为空; (2)若树T只包含一个结点,则其括号表示即为该 结点本身; (3)如果树T由根结点A和它的m棵子树T1,T2,…Tm 构成,则其括号表示为: A(T1的括号表示,T2的括号表示,……Tm的括号表示) 其中子树的括号表示同样应该遵循以上规则。 * * * * 首 页 上一页 下一页 返 回 退 出 * * * * 首 页 上一页 下一页 返 回 退 出 李云清 杨庆红 揭安全 高等学校精品课程 人民邮电出版社 (第2版) (第2版) 第6章 树型结构 树的基本概念 树的遍历 树的线性表示

文档评论(0)

wyjy + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档