通俗易懂的讲解:二叉树_华清远见.docx

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

通俗易懂的讲解:二叉树是什么   本篇文章主要分几个部分,为大家通俗易懂的讲解:二叉树是什么。听到二叉树这个词的时候,是不是想到的就是某一个树呢?这里所讲的树可不是外面长在土地里的树,而是在计算机编程里的树!   一、二叉树的简介   在计算机科学中,二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2^{i-1}个结点;深度为k的二叉树至多有2^k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。一棵深度为k,且有2^k-1个节点的二叉树,称为满二叉树。这种树的特点是每一层上的节点数都是最大节点数。而在一棵二叉树中,除最后一层外,若其余层都是满的,并且最后一层或者是满的,或者是在右边缺少连续若干节点,则此二叉树为完全二叉树。具有n个节点的完全二叉树的深度为log2n+1。深度为k的完全二叉树,至少有2^(k-1)个节点,至多有2^k-1个节点。   二、树的基本概念简介   1树的定义   专业定义:(1)有且只有一个称为根的结点   (2)有若干不相交的子树,这些子树本身也是一颗树。   通俗讲解:   (1)树由结点和边组成   (2)树中除根节点外,每一个节点都有一个父结点,但是 可以用多个子节点。   (3)根结点没有父结点      2树中的专业术语   节点 : 父节点 子节点(老子和儿子) 堂兄弟   度: 结点拥有子树的个数   叶子节点:没有子节点的节点   边 : 一个节点到另一个节点的距离   树的深度:节点的层数, 根节点默认为第一层。   有序 :树的左右位置不能改变。      3树的分类   一般树 : 任意一个结点的子节点的个数不受限制,则称为一般树。(子节点可以有多个),如下图:      二叉树(重点):任意一个节点的子节点的个数最多有两个,且子节点的个数不能更改。      森林:树去掉根结点就称之为森林。      提问:在下图中:      1A,B,H,I的度分别是多少?   A:3 B : 2 H: 1 I: 0   2叶子节点有哪些?   K ,L,F,G,H,I,J   3结点F和I在树中的第几层?   F在第3层。   M在第4层   4树的深度是多少?   4   三、二叉树的特性讲解   1二叉树的性质讲解   如下图是一颗二叉树,它有一些特性:      思考:第一层最多有多少个? 1个   第二层最多有多少个? 2 个   第三层最多有多少个? 4 ?   规律:第i层结点最后有2的n - 1次方个。   性质1:二叉树的第i层上的结点最多有2的i - 1次方个节点。   思考:深度为1的二叉树(遍历第一层)一共有多少个节点? 1个   深度为2的二叉树(遍历到第二层)一共有多少个节点? 3个   深度为3的二叉树(遍历到第三层)一共有多少个节点? 7个   规律:深度为k的而出书,最多有2的k次方 - 1个节点。   性质2:深度为k的二叉树最多有2的k次方-1个结点。   性质3:在任意一棵二叉树中,树叶的数目比度数为2的结点的数目多1.   (推导过程入下图所示:)      2二叉树的分类   满二叉树:在一颗二叉树中,如果所有的分支节点都存在左子树和右子树,并且所有的叶子节点都在同一层上,这样的二叉树,我们称之为满二叉树。      满二叉树的特点:1叶子节点只会出现在最下面一层。   2非叶子节点的节点,拥有子树的个数一定为2.   3在同样深度的二叉树中,满二叉树的节点个数最多。   完全二叉树:对一颗具有n个结点的二叉树按层进行编号,如果编号为i   (1 = i = n)的结点与同样深度的满二叉树节点编号为i的结点   在二叉树中的位置完全相同,则这颗树,我们称之为完全二叉树。   如下图所示。      提问:下面这些树,是完全二叉树吗? 不是      总结:满二叉树一定是完全二叉树,完全二叉树不一定是满二叉树。   四、二叉树的存储   (1)顺序存储[完全二叉树]   (顺序存储的话,若不是完全二叉树存储没有意义。)   假设下面有一颗树,我们如何把它存到数组中呢?      思路:先把转换成完全二叉树,然后再编号。      这样存储就看似没有什么问题。我们可以按照编号把数据存储到数组中,我们按照编号(1,2,3,4,5)的顺序存储就可以了啊!这个时候,我就要问了,假说说,我们的m的编号,你怎么知道我们的3好位置是在下面,而

文档评论(0)

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

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

1亿VIP精品文档

相关文档