问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

二叉树(五)

发布网友 发布时间:2024-01-05 11:16

我来回答

1个回答

热心网友 时间:2024-02-06 17:07

        二叉树可以为空。二叉树结点的子树要区分左子树和右子树,即使只有一棵子树也要进行区分,说明它是左子树,还是右子树。这是二叉树与树的最主要的差别。注意区分:二叉树、二叉查找树/二叉排序树/二叉搜索树、二叉平衡(查找)树。

        二叉平衡树肯定是一颗二叉排序树。堆不是一颗二叉平衡树。

        二叉树与树是不同的,二叉树不等价于分支树最多为二的有序树。当一个结点只包含一个子节点时,对于有序树并无左右孩子之分,而对于二叉树来说依然有左右孩子之分,所以二叉树与树是两种不同的结构。

        1) 顺序存储结构:仅仅适用于满或完全二叉树,结点之间的层次关系由性质5确定。

        2)二叉链表法:每个节点存储左子树和右子树。三叉链表:左子树、右子树、父节点,总的指针是n+2

        3)在有n个结点的二叉链表中,值为非空的链域的个数为n-1。在有N个结点的二叉链表中必定有2N个链域。除根结点外,其余N-1个结点都有一个父结点。所以,一共有N-1个非空链域,其余2N-(N-1)=N+1个为空链域。

        4)二叉链存储法也叫孩子兄弟法,左指针指向左孩子,右指针指向右兄弟。而中序遍历的顺序是左孩子,根,右孩子。这种遍历顺序与存储结构不同,因此需要堆栈保存中间结果。而中序遍历检索二叉树时,由于其存储结构跟遍历顺序相符,因此不需要用堆栈。

        先序遍历DLR:根节点->左子树->右子树

        中序遍历LDR:左子树->根节点->右子树。必须要有中序遍历才能得到一棵二叉树的正确顺序

        后续遍历LRD:左子树->右子树->根节点。需要栈的支持。

        层次遍历:用一维数组存储二叉树时,总是以层次遍历的顺序存储结点。层次遍历应该借助队列。

        对二叉树所有结点做某种处理可在遍历过程中实现;检索(查找)二叉树某个结点,可通过遍历实现;如果能将二叉树线索化,就可以简化遍历算法,提高遍历速度,目的是加快查找结点的前驱或后继的速度。

        如何线索化?以中序遍历为例,若能将中序序列中每个结点前趋、后继信息保存起来,以后再遍历二叉树时就可以根据所保存的结点前趋、后继信息对二叉树进行遍历。对于二叉树的线索化,实质上就是遍历一次二叉树,只是在遍历的过程中,检查当前结点左,右指针域是否为空,若为空,将它们改为指向前驱结点或后继结点的线索。前驱就是在这一点之前走过的点,不是下一将要去往的点。

        加上结点前趋后继信息(结索)的二叉树称为线索二叉树。n个结点的线索二叉树上每个结点有2个指针域(指向左孩子和右孩子),总共有2n个指针域;一个n个结点的树有n-1条边,那么空指针域= 2n - (n-1) = n + 1,即线索数为n+1。指针域tag为0,存放孩子指针,为1,存放前驱/后继节点指针。

例子 :中序遍历 (BDAC)

        一棵左右子树均不空的二叉树在前序线索化后,其中空的链域的个数是1。前序和后续线索化后空链域个数都是1,中序是2。二叉树在线索化后,仍不能有效求解的问题是前序求前序先驱,后序求后序后继。

        中序遍历的顺序为:左、根、右,所以对于每一非空的线索,左子树结点的后继为根结点,右子树结点的前驱为根结点,再递归的执行上面的过程,可得非空线索均指向其祖先结点。在中序线索二叉树中,每一非空的线索均指向其祖先结点。

        在二叉树上加上结点前趋、后继线索后,可利用线索对二叉树进行遍历,此时,不需栈,也不需递归。基本步骤:
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
64岁的老头感冒了,还喝一瓶啤酒,又喝3包感冒药,吃了3个阿莫西林消炎药... ...今天中午12点喝了一瓶啤酒,不会有反应死了吧? 喝一瓶啤酒吃药没事吧 养育孩子有哪些正确的方式? 联想电脑一开机就蓝屏怎么解决 光遇冥想任务怎么完成_冥想任务攻略 光遇 光遇云野的锦鲤池冥想怎么做? 光遇 光遇在滑冰场旁冥想的任务怎么做? 光遇在仙乡的金塔下冥想任务怎么做 任务达成方法介绍 光遇 光遇在禁阁的神坛旁冥想怎么做? 怎么在一年内修改两次 一年改2次的办法 一年内怎么改第二次 一年内第二次修改技巧 为什么用vp6打开不了dbf文件 275除以31列竖式计算怎么列5? 搜索用户不存在怎么回事 征对联:关于伊利牛奶的。请各位大侠多帮忙哈! 鱼羊鲜的来历 组织发芽法图解 功夫派比武大会兔子怎么打? 一个手机号在注册了一个微信后又注册了新的,旧的怎么找回? 牛头人是啥梗 牛头人出自哪儿 怎么数玉米叶片数 如何查才正确 一年内怎么改第二次 一年只能改一次怎么改第二次? 宾语从句的结构和用法是什么? 求对联达人 一年内能改第二次吗? 我买了一张屏幕贴膜 揭开后有两面 一个薄一个厚怎么用啊 帮 如何开启允许淘宝访问相册的权限 我的被封了,然后又用手机号重新注册了一个微信,还能找回以前的微 ... 如何选择适合自己的玻璃贴膜 山里面有什么动物 275除以30约等于多少 我养的小乌龟掉皮该怎么办啊 好着急啊 logistic方程的表达式是什么? 旺角卡门狼靴是什么意思 空二叉树是什么意思 2022改成什么比较有意义 一个手机号绑定了两个,那个以前的登录不上了,怎么办, 怎么一年内修改两次怎样才能一年修改两次? 194750除以600多少可以得整数? 2593÷多少是整数? 2022旺运又旺财的,二个字最吉利最旺财的微信名? 一年改2次的办法 登不上,我又注册了一个新的,以前的微号还能找回来吗? 功夫派里龙人和兔子哪个厉害? 抖音直播羊羊对决怎么开 我的被别人注销了怎么找回来?