二叉树(0001)_原创文档.pdf

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

二叉树

第六章树

第一部分:知识点

知识脉络:

重点:二叉树的性质、:I树的各种遍历方法及它g1所确定的序列问的关

系、二又树上的基本运算算法

的实现、二又树的线索化方法,构造赂夫曼树的方法。

难点:二叉树上各种算法,特别是遍历的非递归算法的设计。

一、二叉树的遍历的非递归算法

1.先序遍历

先将根结点入栈,然后只要栈不空,先出栈,然后沿着左子针依次访问沿途经

过的子树根结点,同时将右指针进栈(以便递归访问左子树后访问右子树),如

此重复,直至栈为空。

voidPreOrderBiTree(BitTreeT)

{SqStackS;

BitTreep;

InitStack(S);/*初始化一个空栈*/

Push(S,T);/*根结点指针进栈*/

while(!EmptyStack(S))/*栈为空时算法结束*/

{Pop(S,p);/*弹栈,p指向(子树)根结点*/

while(p)

/*访问根结点*/

if(p-rchild)Push(S,p-rchild);/*非空的右指针进栈*/

p=p-lchild;/*沿着左指针访问,直到左指针为空*/

}

elsep=q-rchild;

}

}

二、线索二叉树

1、已知树T如下,画出它的三种线索二叉树

先序线索二叉树

(1)写出先序序列:ABDCEFG

(2)为度不是2结点添加指针。

若没有左孩子,添加左孩子指针并

指向直接前驱。

若没有右孩子,添加右孩子指针

并指向直接后继。

中序线索二叉树后序线索二叉树

中序序列:DBAFEGC写出后序序列:DBFGECA

2、中序线索二叉树的存储结构

带头结点的中序线索化树

以中序线索链表为存储结构的中序遍历

inorderthread1(BiThrTreeThrt)

{

BiThrTreep=Thrt-lchild;

while(p!=Thrt)

{while(p-ltag==0)p=p-lchild;

while(p-rtag==1p-rchild!=Thrt)

p=p-rchild;

}

}

第二部分:习题

一、选择题

1.已知一算术表达式的中缀形式为A+B*C-D/E,

后缀形式为ABC*+DE/-,其前缀形式为()

A.-A+B*C/DEB.-A+B*CD/E

C.-+*ABC/DED.-+A*BC/DE

2.设有一表示算术表达式的二叉树(见右图),

/

它所表示的算术表达式是(+)。*+

*C-

DEF

您可能关注的文档

文档评论(0)

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

大专毕业生

1亿VIP精品文档

相关文档