网站大量收购闲置独家精品文档,联系QQ:2885784924

二叉树的遍历及其应用.pdf

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

二叉树的遍历及其应用

摘要:二叉树是一种特殊的树,它在计算机科学领域提供了大量的实际

应用。二叉树依照需求可以通过阵列以及链接链表来实现。树的遍历是

指一次访问树的所有节点的过程。遍历二叉树有三种方式,分别是先序

遍历,中序遍历,后序遍历。在遍历的过程中更加深入的了解二叉树遍

历的算法过程及其应用,以至于充分的认识到二叉树遍历的优越性。

关键词:二叉树,遍历,先序遍历,中序遍历,后序遍历

Traversingabinarytreeanditsapplication

Abstract:Abinarytreeisaspecialtypeoftreethatoffersalotofpractical

applicationsinthefieldofcomputerscience.Binarytreescanbeimplemented

byusingarraysaswellaslinkedlists,dependingupontherequirements.

Traversingatreereferstotheprocessofvisitingallthenodesofthetree

once.Therearethreewaysinwhichyoucantraverseabinarytree.Theyare

inorder,preorder,andpostordertraversal.Intheprocessofbinary,Ideeply

realisethearithmeticprocessandtheapplianceofbinary.Ialsorealisethe

superiorityoftraversingabinarytree.

Keywords:binarytree;traversal;inordertraversal;preordertraversal;

postordertraversal

0引言

所谓遍历,是指沿着某条搜索路线,依次对树中每个结点均做一次

且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。遍历

在二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。二叉

树作为一种重要的数据结构是工农业应用与开发的重要工具。遍历是二

叉树算法设计中经典且永恒的话题。经典的算法大多采用递归搜索。递

归算法具有简练、清晰等优点,但因其执行过程涉及到大量的堆栈使

用,难于应用到一些严格限制堆栈使用的系统,也无法应用到一些不支

[9]

持递归的语言环境。

1遍历二叉树的概念

所谓遍历二叉树,就是遵从某种次序,访问二叉树中的所有结点,

使得每个结点仅被访问一次。这里提到的“访问”是指对结点施行某种

操作,操作可以是输出结点信息,修改结点的数据值等,但要求这种访

问不破坏它原来的数据结构。在本文中,我们规定访问是输出结点信息

data,且以二叉链表作为二叉树的存贮结构。由于二叉树是一种非线性

结构,每个结点可能有一个以上的直接后继,因此,必须规定遍历的规

则,并按此规则遍历二叉树,最后得到二叉树所有结点的一个线性序

[1]

列。

2二叉树遍历的算法

二叉树的遍历方式有三种:中序遍历、前序遍

历、后序遍历。

1、中序遍历的递归算法定义:

若二叉树非空,则依次执行如下操作:

(1)遍历左子树;

(2)访问根结点;

(3)遍历右子树。

首先,先确定根结点(A)及其左右子树(B)、(C),按照中序

遍历LTR的顺序,任一节结点在以其为根的子树中的访问顺序为左子

树、根结点、右子树。而对于以B、C为根结点的两个子树,还可继续

将其拆分为左、右子树,按左中右的顺序,遍历左子树直到其只有一个

结点或为空为止,然后遍历右子树,直到其右子树只有一个结点或为空

[3]

为止。此步骤可借助图1来讲解。

编程时,可以用如下代码:

publicvoidpreorder(Nodeptr)

{

if(R

文档评论(0)

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

好文件大家都可以分享

1亿VIP精品文档

相关文档