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

数据结构课件树和二叉树.pptVIP

  1. 1、本文档共71页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第六章树和二叉树;树是一类重要的非线性数据结构,是以分支关系定义的层次结构

树的定义

定义:树(tree)是n(n0)个结点的有限集T,其中:

有且仅有一个特定的结点,称为树的根(root)

当n1时,其余结点可分为m(m0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)

特点:

树中至少有一个结点——根

树中各子树是互不相交的集合;A;从逻辑结构看:

1〕树中只有根结点没有前趋;

2〕除根外,其余结点都有且仅一个前趋;

3〕树的结点,可以有零个或多个后继;

4〕除根外的其他结点,都存在唯一条从根到该结点的路径;

5〕树是一种分枝结构〔除了一个称为根的结点外〕每个元素都有且仅有一个直接前趋,有且仅有零个或多个直接后继。;树的结点:包含一个数据元素及假设干指

向子树的分支;

孩子结点:结点的子树的根称为

该结点的孩子;

双亲结点:孩子结点的上层结点叫该结点的~;

兄弟结点:同一双亲的孩子结点;

堂兄结点:同一层上结点;

祖先结点:从根到该结点的所经分支上的所有结点

子孙结点:以某结点为根的子树中任一结点都称为该结点的子孙;结点层数:根结点的层定义为1;根的孩子为第二层结点,……

树的深度(高度):树中最大的结点层

结点的度数:结点拥有的子树数

树的度:一棵树中最大的结点度数

叶子结点:也叫终端结点,

是度为0的结点;

分枝结点:度不为0的结点;

有序树:子树有序的树,如:家族树;

无序树:不考虑子树的顺序;

森林:互不相交的树集合;森林和树之间的联系是:一棵树去掉根,其子树构成一个森林;一个森林增加一个根结点成为树。;A;树的表示

1〕树形表示2〕文式图表示

3〕嵌套括号表示4〕凹入表示法〔类似书的目录〕

树型表示;图形表示法:;凹入表表示〔类似书的目录〕;嵌套集合表示;一、根本概念

1、二叉树的定义

二叉树是n(n?0)个结点的有限集,它或为空树(n=0),或由一个根结点和两棵互不相交的分别称为左子树和右子树的二叉树构成;F;2.二叉树的根本形态;性质1:在二叉树的第i层上最多有2i-1个结点〔i=1〕;性质3:对任何一棵非空的二叉树,如果叶结点个数为n0,度为2的结点个数为n2,那么n0=n2+1;E;完全二叉树

--定义1:深度为k,有n个结点的二叉树当且仅当其每一个结点都与深度为k的满二叉树中编号从1至n的结点一一对应时,称为~

--定义2:如果一棵二叉树中,只有最下面的两层结点度数小于2,其余各层结点度数都等于2,并且最下面一层的结点,都集中在该层最左边的假设干位置上,称为~

--特点

1、叶子结点只可能在层次最大的两层上出现

2、对任一结点,假设其右分支下子孙的最大层次为L,那么其左分支下子孙的最大层次必为L或L+1;1;性质4:

假设深度为k,那么:

2k-1-1n=2k-1即:2k-1=n2k

k-1=log2nk

由于k为整数,所以k=的整数。;C;二叉树的存储结构

顺序存储结构

实现:按满二叉树的结点层次编号,依次存放二叉树中的数据元素

特点:1、结点间关系蕴含在其存储位置中

2、浪费空间,只适于存满二叉树和完全二叉树;typedefstructnode

{datatypedata;

structnode*lchild,*rchild;

}JD;;空指针个数:2*n0+1*n1+0*n2

=2n0+n1

=n0+n1+n0

=n0+n1+n2+1

=n+1;三叉链表;6.3遍历二叉树和线索二叉树;先序遍历:先访问根结点,然后分别先序遍历左子树、右子树

中序遍历:先中序遍历左子树,然后访问根结点,最后中序遍历右子树

后序遍历:先后序遍历左、右子树,然后访问根结点;A;A;A;-;2005年试题;2006试题2;软件设计师2004上半年;-;遍历的抽象算法

--------递归算法;voidpreorder(JD*bt)

{if(bt!=NULL)

{printf(%d\t,bt-data);

preorder(bt-lchild);

preorder(bt-rchild);

}

};非递归算法;中根算法

VoidInOrder(BinTreet)

InitStack(s);push(s,t);

While(!StackEmpty(s)){

while(GetTop(S,p)p)p

文档评论(0)

199****4744 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:7002121022000045

1亿VIP精品文档

相关文档