[理学]第六章 树.ppt

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

后序遍历二叉树的操作定义: 若二叉树为空,则空操作;否则 (1) 后序遍历左子树; (2) 后序遍历右子树; (3) 访问根结点。 后序遍历的顺序为:BCA 后序遍历的顺序为: LEBMIHJDA A B C A B D E L H M I J - - / + × a b c d e f 例:请写出下图所示二叉树的先序、中序和后序遍历顺序。 遍历结果: 先序: - + a×b - c d / e f 中序: a + b×c - d - e / f 后序: a b c d -×+ e f / - 表达式的前缀表示(波兰式) 表达式的中缀表示 表达式的后缀表示(逆波兰式) 先序遍历二叉树基本操作的递归算法在二叉链表上的实现: Status PreOrderTraverse (Bitree T, Visit) { // 最简单的 Visit 函数是: // Status PrintElement (TElemType e) // { Printf (e); // 实用时加上格式串。 // return OK; } // 调用实例:PreOrderTraverse (T, PrintElement); if (T) { if (Visit (T??data)) if (PreOrderTraverse (T??lchild, Visit)) if (PreOrderTraverse (T??rchild, Visit)) return OK; return ERROR; } else return OK; } // PreOrderTraverse lchild data rchild 结点结构 A B C D E F G ^ ^ ^ ^ ^ ^ ^ ^ T 中序遍历二叉树基本操作的递归算法在二叉链表上的实现: Status InOrderTraverse (Bitree T, Visit) { if (T) { if (InOrderTraverse ( T??lchild, Visit )) if (Visit (T??data)) if (InOrderTraverse (T??rchild, Visit)) return OK; return ERROR; } else return OK; } // InOrderTraverse A B C D E F G ^ ^ ^ ^ ^ ^ ^ ^ T 后序遍历二叉树基本操作的递归算法在二叉链表上的实现: Status PostOrderTraverse (Bitree T, Visit) { if (T) { if (PostOrderTraverse ( T??lchild, Visit )) if (PostOrderTraverse (T??rchild, Visit)) if (Visit (T??data)) return OK; return ERROR; } else return OK; } // PostOrderTraverse A B C D E F G ^ ^ ^ ^ ^ ^ ^ ^ T 以中序遍历为例来说明中序遍历二叉树的递归过程 第一次经过 第二次经过 第三次经过 Ф B D Ф Ф A B C E D ▲ 二叉树的前序遍历序列中,任意一个结点均处在其子女结点的前面,这种 说法() (A)正确 (B)错误 由于二叉树中每个结点的度最大为 2,所以二叉树是一种特殊的树,这种说 法() (A)正确 (B)错误 已知某二

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档