数据结构 -树

news2025/2/27 5:26:42

  • 1 知识框架
  • 2 二叉树概论
    • 2.1 特殊二叉树
    • 2.2 二叉树的存储
    • 2.3 线索二叉树

1 知识框架

在这里插入图片描述
基本概念:
1.度:一个结点的孩子为该结点的度,树中最大度数为树的度。
2.深度,高度,层次:高度和层次都是从顶至下,高度是从底至上。

基本性质:
1.结点数 = 所有度数之和 + 1
2.具有n个结点的m叉数的最小高度
在这里插入图片描述
3.非空二叉树上的叶结点等于度为2的结点树+1

2 二叉树概论

2.1 特殊二叉树

1.满二叉树
高度为h,有2^h - 1个结点。
在这里插入图片描述

2.完全二叉树
叶结点的高度差不超过1且最下面结点从左往右,左边一个不缺。
在这里插入图片描述

3.二叉排序树
左 < 根 < 右 或者 右 < 根 < 左
树上的任何一颗子树都遵守
在这里插入图片描述

4.平衡二叉树
树上任何一个左右子树深度之差不超过1 (后面文章细讲平衡二叉树的插入与删除)

2.2 二叉树的存储

1.顺序存储
完全二叉树适合顺序存储,一般二叉树在存储时,空白结点也分配存储空间使他与完全二叉树一致
0表示不存在的空白结点
0表示不存在的空白结点
使用顺序存储时,数组下标从1开始,使他能符合完全二叉树的性质,如下:
在这里插入图片描述

2.链式存储
定义:

typedef struct tree{
	ElemType data;
	struct tree *lchild,*rchild;
	int ltag,rtag;
}tree,*Tree;

树的建立和二叉树各种函数的应用(各种遍历,线索化)在前面的文章 二叉树函数总结
简单二叉树创立

2.3 线索二叉树

定义:
若无左子树,lchild 指向前驱,ltag = 1;无右子树,rchild 指向后继,rtag = 1;

typedef struct ThreadTree
{
	int data;
	struct ThreadTree * lchid,rchild;
	int ltag,rtag;
}ThreadTree,*ThreadTree

1.中序线索化
在这里插入图片描述

void midTreadTree(tree *p)//线索化方法 
{
	if(p != NULL){
		midTreadTree(p -> lchild);//遍历左孩子 
		if(p -> lchild == NULL){
			p -> ltag = 1;//为空,令标志=1; 
			p ->lchild = pre;//pre永远是指向上一个节点的指针 
		}
		else {
			p -> ltag = 0;//不为空令标志= 0; 
		}
		if(pre -> rchild == NULL){
			pre -> rtag = 1;
			pre -> rchild = p;
		}
		else {
			pre -> rtag = 0;
		}
		pre = p;
		midTreadTree(p->rchild);//p指向当前节点,此时pre==p,p向后移动一位 
	}
}

为了方便,还可以增加一个头结点:
在这里插入图片描述

2.先序线索化,后序线索化:递归的位置交换一下。

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

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

相关文章

JavaWeb09(购物车操作)

目录 一.购物车实现方式 1.Cookie方式. 2.session方式. 3数据库方式. 二.效果预览 2.1 未登录提示 2.2 已登录提示 2.3 查看"我的购物车" 三.实现思路 3.1 分清楚商品 订单项 订单的关系 ①商品&#xff1a;包含基本信息 ②订单项&#xff1a;除了商品的基…

chatgpt赋能Python-python_hashlib解密

Python Hashlib 解密 在计算机编程中&#xff0c;哈希函数是一种将任意大小的数据映射为固定大小值的函数。哈希函数通常用于加密和数据完整性校验。哈希函数可由多种算法实现&#xff0c;其中包括Python hashlib模块。本文将介绍Python中的hashlib模块以及如何使用它来进行哈…

甘特图控件DHTMLX Gantt教程:dhtmlxGantt 与PHP: Laravel(下)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的大部分开发需求&#xff0c;具备完善的甘特图图表库&#xff0c;功能强大&#xff0c;价格便宜&#xff0c;提供丰富而灵活的JavaScript API接口&#xff0c;与各种服务器端技术&am…

实在智能魅力抢眼!携超自动化解决方案和校企合作新范式点燃第七届世界智能大会

为深入实施创新驱动发展战略&#xff0c;推动智能科技赋能经济社会发展&#xff0c;促进校企双方交换需求清单&#xff0c;全方位搭建校企握手通道&#xff0c;5月18日&#xff0c;由国家发展和改革委员会、科学技术部、国家广播电视总局、中国科学院等联合主办的第七届世界智能…

通过九点选择CRM系统

众所周知&#xff0c;CRM系统对于企业的发展至关重要。它可以帮助企业增强市场竞争力&#xff0c;拓展新的市场机会&#xff0c;提升品牌形象和口碑&#xff0c;提高客户满意度和忠诚度&#xff0c;实现业绩的大幅增长。那么选型时&#xff0c;CRM系统哪家好&#xff1f;看准这…

企业如何利用方舟低代码平台快速构建营销系统?

前言 国家在十四五规划中明确将“加快发展现代产业体系、推动经济体系优化”作为数字化转型的重要指导方针 &#xff0c;数字化转型已经成为企业的主要工作&#xff0c;在传统的方式下先采购产品后进行定制改造的模式已经很难适应快速多变的市场&#xff0c;为了应对市场或自主…

广告商业该如何突破重围

广告商业也算是 我们日常生活中不可 缺少的商业渠道 但是广告商业太广了 很多小伙伴是无从下手的 今天智龙就简单的和你们 分享一下广告商业的 一些心得。 首先从用户类型开始入手 今天我们先讲网络用户群体 从图中可以看出 其实网络购物用户 群体是非常庞大的 意味着如果广告 …

chatgpt赋能Python-python_for_line

Python for Line: A Powerful Tool for Streamlining Your Business Communication In today’s fast-paced business world, effective communication is key to success. Whether you’re collaborating with colleagues, sharing information with clients, or dealing wit…

印刷八木天线的仿真与设计

前言 前篇介绍了俄罗斯的网红Wi-Fi天线&#xff0c;其可看作是八木天线。对于八木天线&#xff0c;相信很多业内朋友都不陌生&#xff0c;这类天线长成这个样子。本篇详细介绍八木天线的原理&#xff0c;并设计印刷八木天线。 ​图 1 八木天线 八木天线的工作原理 天线工作原…

「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接

文章目录 前言视频教程1、安装OpenSSH2、vscode配置ssh3. 局域网测试连接远程服务器4. 公网远程连接4.1 ubuntu安装cpolar内网穿透4.2 创建隧道映射4.3 测试公网远程连接 5. 配置固定TCP端口地址5.1 保留一个固定TCP端口地址5.2 配置固定TCP端口地址5.3 测试固定公网地址远程 转…

【LeetCode: 面试题 17.24. 最大子矩阵 | 动态规划 】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

多模态方法(更新中)

待coding&#xff1a; moco pcl 文章目录 Semantic Representation for Dialogue ModelingPCL: Peer-Contrastive Learning with Diverse Augmentations for Unsupervised Sentence Embeddings深度网络的公理归因 Axiomatic Attribution for Deep NetworksNLU模型的捷径学习行…

面试可以问面试官哪些问题?这些问题需要弄清楚

在参加面试过程中&#xff0c;面试官通常会给你提供询问的机会&#xff0c;让你了解公司、职位和工作环境。在这个过程中&#xff0c;你可以通过提问来更好地了解公司、职位和工作环境&#xff0c;也能够让面试官感受到你对公司的兴趣和热情。那么都有哪些问题我们是有必要进行…

阿里成立AIDC,用“增长”解题国际化

随着阿里巴巴集团2023财年年报的披露&#xff0c;AIDC也随即浮出了水面。 AIDC是阿里国际数字商业集团的英文简称&#xff0c;AIDC即Alibaba International Digital Commerce。阿里是在5月18日公布的截至2023年3月31日的2023财年Q4及全年财报&#xff0c;财报数据之外&#xff…

Windows 11部署WSL(Windows Subsystem for Linux——适用于Windows的Linux子系统)

文章目录 前言一、Windows 11部署WSL&#xff08;Windows Subsystem for Linux&#xff09;1.打开控制面板→程序→启动或关闭 Windows 功能2.勾选 “适用于 Linux 的 Windows 子系统” 和 “虚拟机平台”3.立即重新启动电脑4.按win键或者点击左下角的windows图标打开微软的应用…

Gitee+Jenkins+SonarQube代码上线的实战操作

代码上线-流程图 添加Nexus流程图 机器的环境 172.168.0.1 jenkins # 建议-机器环境&#xff1a;1C以上&#xff0c;2G以上&#xff0c;40G磁盘以上 172.168.0.2 SonarQube # 建议-机器环境&#xff1a;2C以上&#xff0c;4G以上&#xff0c;40G磁盘以上 172.…

面对数字化新技术的变革风口,企业应如何借由技术创新开拓新局,完成数字化转型和升级?

为使企业有效借力科技创新&#xff0c;实现数字化转型升级&#xff0c;企业可以采取以下几个关键步骤&#xff1a; 评估业务目标&#xff1a;首先明确企业的业务目标并确定技术创新可以帮助企业实现这些目标的领域。了解企业当前的挑战、竞争格局和客户需求&#xff0c;以确定数…

Unity:圆底烧瓶中液体液面升降变化的效果

一、效果展示 二、实现的原理 1、从image的filled模式说起 image的filled模式&#xff0c;适合用来做进度条&#xff1a; 2、能否为一个3D object实现一个image filled 的shader &#xff1f; Shader "Custom/FilledImageEffect" {Properties{_MainTex ("…

Qt编程基础 | 第三章-控件 | 3.1、组合框

一、组合框 1.1、定义 QComboBox提供了一种向用户呈现选项列表的方式&#xff0c;以占用最少的屏幕空间。 组合框是一个显示当前项目的选择小部件&#xff0c;可以弹出可选择项目的列表。 组合框可以是可编辑的&#xff0c;允许用户修改列表中的每个项目。 QComboBox 除了显示…

2023款ECMAScript

2023款ECMAScript 新的数组api findLast 反向迭代数组&#xff0c;并返回满足提供的测试函数的第一个元素的值, 如果没有找到返回undefined const isEven (number) > number % 2 0; const numbers [1, 2, 3, 4]; console.log(numbers.findLast(isEven)); // 4 findLastI…