数据结构:树与二叉树(2)

news2024/11/25 13:38:39

1、线索二叉树

1.1线索二叉树的定义

(1)线索二叉树有啥用?

普通二叉树的节点包含左孩子和右孩子的信息,但并没有直接存储关于“直接前驱”和“直接后继”的信息,结点的前驱和后继只能在遍历过程中获得。

因此这里引入线索二叉树,线索二叉树会额外存储前驱和后继的信息,从而能够在常规操作之外快速找到节点的前驱或后继。

(2)定义

空指针域的利用

利用二叉链表中的空指针域保存信息

1)若结点有左子树,则lchild指向其左孩子;否则,lchild指向其直接前驱

2)若结点有右子树,则lchild指向其右孩子;否则,lchild指向其直接后继

标志位的引入

为了区分 lchildrchild 域中的指针究竟是指向孩子节点还是指向前驱/后继节点,在线索二叉树中为每个节点增加了两个标志位 LTagRTag。

LTag=0, lchild 域指向左孩子
LTag=1, lchild 域指向其前驱
RTag=0, rchild 域指向右孩子
RTag=1, rchild 域指向其后继

例如我们有这样一棵二叉树 

那么它的先序遍历就是ABCDE
它的线索二叉树如下图:

它的中序遍历是:BCAED

线索二叉树如下图:

它的后续遍历是:CBEDA

线索二叉树如下图:

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2123627.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Springboot中mybatis的使用

一.创建Springboot项目并加载依赖 1.利用IDEA创建SpringBoot项目,并勾选必须依赖,步骤如下(IDEA版本为2024版) 注意: 1.首先更换镜像源,否则加载配置环境比较慢,网上搜阿里的镜像源就行。 2…

关于在vue2中使用el-tree的记录

此文章会持续更新在使用el-tree过程中应用到的功能... 先看此效果&#xff1a; html&#xff1a; <el-tree :data"data" :props"defaultProps" node-click"handleNodeClick">//自定义节点内容<span slot-scope"{ data }"&g…

Leetcode面试经典150题-135.分发糖果

解法都在代码里&#xff0c;不懂就留言或者私信 阿里字节都考过 class Solution {/**对于每个孩子来说&#xff0c;我们试一下从左边开始它应该分几个糖果&#xff0c;然后看一下从右边开始它应该分几个糖果然后左右取最大值&#xff0c;每个位置求和就是我们要的答案 */publ…

【解决keil不能跳转函数声明的问题】

第一步&#xff1a;将魔术棒中的output选项里Browase Information功能打开 第二步&#xff1a;重新编译整个工程 第三步&#xff1a;跳转测试

Java项目: 基于SpringBoot+mybatis+maven实现的IT技术交流和分享平台(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven实现的IT技术交流和分享平台 包含&#xff1a;项目源码、数据库脚本等&#xff0c;该项目附带全部源码可作为毕设使用。 项目都经过严格调试&#xff0c;eclipse或者idea 确保可以运行&#xff01; 该系统功能完善、界面美…

【笔记】2.1 石英类原料

2.1.1 石英类原料的种类 石英&#xff1a;结晶矿物。 &#xff08;1&#xff09;石英砂&#xff08;硅砂&#xff09; 石英石、长石在水、二氧化碳、温度作用下风化分解由水流冲击沉积而形成。 主要成分为&#xff0c;质地纯净的硅砂为白色&#xff0c;其中若含有少量杂质&…

SpringCloud集成MybatisPlus,实现MySQL多数据源配置

引入依赖 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.0</version> </dependency><dependency><groupId>com.alibaba</groupId><art…

Apache DataFusion查询引擎简介

01 简介 DataFusion是一个查询引擎&#xff0c;其本身不具备存储数据的能力。正因为不依赖底层存储的格式&#xff0c;使其成为了一个灵活可扩展的查询引擎。它原生支持了查询CSV&#xff0c;Parquet&#xff0c;Avro&#xff0c;Json等存储格式&#xff0c;也支持了本地&#…

TCP通信实现

前言 TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种面向连接的、可靠的、基于流的通信协议。它是互联网协议栈&#xff08;TCP/IP&#xff09;中的核心协议之一&#xff0c;主要用于保证在计算机网络中可靠地传输数据。 TCP通信的基…

面向物联网基础的智能农业环境的节能边缘-雾-云计算架构

这篇论文的标题是《Energy-Efficient Edge-Fog-Cloud Architecture for IoT-Based Smart Agriculture Environment》&#xff0c;作者是Hatem A. Alharbi和Mohammad Aldossary&#xff0c;发表在IEEE Access期刊上。论文的主要内容可以概括为以下几个部分&#xff1a; 摘要&am…

【JVM 工具命令】JAVA程序线上问题诊断,JVM工具命令的使用,jstat, jstack,jmap命令的使用

【JVM 工具命令】JAVA程序线上问题诊断&#xff0c;JVM工具命令的使用&#xff0c;jstat&#xff0c; jstack&#xff0c;jmap命令的使用 1. JVM监控工具&#xff1a; Jstat命令 通过这个命令查询java程序&#xff0c;gc的情况 jstat -gcutil {pid} 5000 12 5000 表示5000…

JavaWeb【day12】--(SpringBootWeb登录认证)

案例-登录认证 在前面的课程中&#xff0c;我们已经实现了部门管理、员工管理的基本功能&#xff0c;但是大家会发现&#xff0c;我们并没有登录&#xff0c;就直接访问到了Tlias智能学习辅助系统的后台。 这是不安全的&#xff0c;所以我们今天的主题就是登录认证。 最终我们…

Mysql高级篇(中)—— 索引优化

Mysql高级篇&#xff08;中&#xff09;—— 索引优化 一、索引分析案例案例 1&#xff1a;单表查询案例 2&#xff1a;两表连接查询案例 3&#xff1a;三表连接查询 二、避免索引失效常见索引失效场景简述场景 1场景 2场景 3场景 4场景 5场景 6 三、索引优化文字版示例版 一、…

每日OJ_牛客_数组中出现次数超过一半的数字

目录 牛客_数组中出现次数超过一半的数字 解析代码1 解析代码2 牛客_数组中出现次数超过一半的数字 数组中出现次数超过一半的数字__牛客网 给一个长度为 n 的数组&#xff0c;数组中有一个数字出现的次数超过数组长度的一半&#xff0c;请找出这个数字。例如输入一个长度为…

瑞芯微RK3566鸿蒙开发板OpenHarmony标准系统应用兼容性测试指导

本文OpenHarmony标准系统应用兼容性测试指导&#xff0c;适用鸿蒙系统软件开发测试的新手入门学习课程。设备为触觉智能的瑞芯微RK3566开发板&#xff0c;型号Purple Pi OH。是Laval官方社区主荐的一款鸿蒙开发主板。支持Openharmony、安卓Android、Linux的Debian、Ubuntu系统。…

实战项目01-icon图标修改

修改项目图标 引入图片资源&#xff0c;放入指定目录&#xff0c;覆盖掉之前图片即可 目录&#xff1a;entry > src > main > resources > base > media 图片&#xff1a;startIcon.png foreground.png background.png 修改项目标题 需要修改 EntryAbilit…

Deploying Spring Boot Apps Tips

Java PaaS providers chatter command Efficient deployments See also spring-boot-reference.pdf https://docs.spring.io/spring-framework/reference/integration/checkpoint-restore.html

基于JAVA+SpringBoot+Vue的网上商城系统的设计与实现

基于JAVASpringBootVue的网上商城系统的设计与实现 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末附源码下载链接&#x1…

为数据仓库构建Zero-ETL无缝集成数据分析方案(下篇)

对于从事数据分析的小伙伴们来说&#xff0c;最头疼的莫过于数据处理的阶段。在我们将数据源的原始数据导入数据仓储进行分析之前&#xff0c;我们通常需要进行ETL流程对数据格式进行统一转换&#xff0c;这个流程需要分配专业数据工程师基于业务情况完成&#xff0c;整个过程十…

Java解决Jira单点登录、登出思路介绍

说明&#xff1a; 当前环境的Jira是容器部署的&#xff0c;所以方案中的整个流程是在docker环境下进行分析。且方案为解决思路或者说解决方式的一种&#xff0c;仅供参考&#xff0c;不喜勿喷。当然依然存在个别问题&#xff0c;没能完全优化完&#xff0c;想了解的可以直接看最…