【数据结构】树的概念
Halo,这里是Ppeua。平时主要更新C语言,C++,数据结构算法......感兴趣就关注我吧!你定不会失望。
🌈个人主页:主页链接
🌈算法专栏:专栏链接
我会一直往里填充内容哒!
🌈LeetCode专栏:专栏链接
目前在刷初级算法的LeetBook 。若每日一题当中有力所能及的题目,也会当天做完发出
🌈代码仓库:Gitee链接
🌈点击关注=收获更多优质内容🌈
![]()
本章来记录下最近新学习的树的基础概念以及基础公式,大概会分为几个章节讲完。
目录
1.初识树
树的相关定义:
在结构中的存储:
2.二叉树的概念
特殊的二叉树:
满二叉树:
完全二叉树:
二叉树公式:
题目:
完结撒花:
1.初识树
树之所以被称为树是因为
现实生活中的树是长这样的:
数据结构中树是长这样的,看起来就像将其倒过来而形成的。所以在数据结构中,我们把长这样形状(由一个根,若干个节点与叶子组合起来,且各个节点之间有且只有一条路到达根)称为树
除根节点外,其余结点被分成M(M>0)个互不相交的集合T1、T2、……、Tm,其中每一个集合Ti(1<= i<= m)又是一棵结构与树类似的子树。每棵子树的根结点有且只有一个前驱,可以有0个或多个后继。 也就是说,每一颗子树都是不相交的。
这里引入一些概念:
除根节点外,每个节点有且只有一个父节点
一颗N个节点的树有N-1条边
树的相关定义:
节点的度:该节点拥有的子树个数.如A为6
叶子:度为0的节点
父亲节点/孩子节点:若一个节点有子节点,则该节点为子节点的父亲节点,反之该子节点为孩子节点
兄弟节点:两个拥有同样父亲的节点
节点层次/树的深度(高度):该节点距离根的层数称为层次,根为第一层.深度为最大的层次
节点祖先:从根到该节点所经分治的所有节点.例如A为所有节点的祖先
节点子孙:与祖先定义相反:以某节点为根,则其所有子节点都为其节点子孙
在结构中的存储:
因为树的定义为:一个节点可以拥有若干个子节点.所以我们没有办法通过一个节点来直接记录其所有子节点.所以我们通常才用以下这种模式来记录.
也就是一个节点中有两个指针分别指向子节点与其兄弟节点.还有一个变量来存储数据
typedef int DataType;
struct Node
{
struct Node* _firstChild1; // 第一个孩子结点
struct Node* _pNextBrother; // 指向其下一个兄弟结点
DataType _data; // 结点中的数据域
};
2.二叉树的概念
相比于树,二叉树具有以下特点:每个数的度为[0,1,2]三种可能,也就是一个节点最多有两个子节点.
且二叉树的两个节点顺序不能颠倒,具有左右节点的概念
特殊的二叉树:
满二叉树:
同一层下都有/无子节点,在概念上来看就是,节点总数为2^k-1其就为满二叉树
完全二叉树:
除去最后一层,为满二叉树,最后一层从左向右分布子节点.满二叉树为特殊的完全二叉树
二叉树公式:
根的深度为1,部分教材上为0,但若这棵树是空树(没有节点)按照教材上的定义,此时深度还是为0嘛?所以统一按1来计算
双亲节点计算:(child-1)/2
左儿子:(parent*2+1)
右儿子:(parent*2+2)
对于一颗非空二叉树,其一层上最多有2^(h-1)个节点,反之其深度为log(n+1)
深度为h的二叉树,其节点最大总数为2^h-1,
二叉树度为0的节点为n0,度为1的节点为n1,度为2的节点为n2,则有以下关系:n0=n2+1
题目:
用到n0=n2+1的公式,则n0=200
用到n0=n2+1的公式,2n=n2+1+n2+n1 根据完全二叉树的定义,n1只会有0个或者1个.所以n0=n
完结撒花:
🌈本篇博客的内容【数据结构:树的概念】已经结束。
🌈若对你有些许帮助,可以点赞、关注、评论支持下博主,你的支持将是我前进路上最大的动力。
🌈若以上内容有任何问题,欢迎在评论区指出。若对以上内容有任何不解,都可私信评论询问。
🌈诸君,山顶见!
相关文章:
![](https://img-blog.csdnimg.cn/d023b5c9801444609ff27ef49727ccd1.png)
【数据结构】树的概念
Halo,这里是Ppeua。平时主要更新C语言,C,数据结构算法......感兴趣就关注我吧!你定不会失望。 🌈个人主页:主页链接 🌈算法专栏:专栏链接 我会一直往里填充内容哒! &…...
![](https://www.ngui.cc/images/no-images.jpg)
Qt Glog toStdWString转char* 中文乱码
#include <QTextCodec>void LogWriter::init(void) {InitGoogleLogging("ui-fundus");char log_path[256] {0};FLAGS_stderrthreshold GLOG_INFO; // INFO WARNING ERROR FATAL, 是输出到stderr(app Output/cli)的阀值FLAGS_alsologtostderr false; // 当这…...
![](https://img-blog.csdnimg.cn/f03c813c873645a9b79a4d248dfc7544.png)
基于线性Kalman观测器(LKF)的2、4、7自由度悬架主动控制合集
目录 前言 1. 1/4车悬架仿真分析 2. 1/2车悬架仿真分析 3. 整车车悬架仿真分析 3.1 KF观测状态 3.2性能指标 4 .KF调参总结 5.文章总结 前言 对于kalman的原理介绍在上篇文章中已经做了详尽剖析,本篇进行实战,将其应用于悬架系统,其实…...
![](https://img-blog.csdnimg.cn/ef8514570eb14c8bb9f187e134a9d3d9.png)
第二章 作业(6789B)【编译原理】
第二章 作业【编译原理】前言推荐第二章 作业678911最后前言 以下内容源自《编译原理》 仅供学习交流使用 推荐 无 第二章 作业 6 6.令文法G6为 N→D|ND D→0|1|2|3|4|5|6|7|8|9 (1)G6的语言L(G6)是什么? (2)给出句子0127、34和568的最左推导和最右推导。 (…...
![](https://img-blog.csdnimg.cn/a84ad69024b94b03aa7b817939596493.png)
【java】连续最大和、统计回文
目录 1.连续最大和 2.统计回文 1.连续最大和 链接:连续最大和_牛客题霸_牛客网 (nowcoder.com) 描述:一个数组有 N 个元素,求连续子数组的最大和。 例如:[-1,2,1],和最大的连续子数组为[2,1],其和为 3 输…...
![](https://img-blog.csdnimg.cn/8dd03c726f4b46deb74855dbabcd416c.png)
AI真的快让我们失业了,从ChatGPT到Midjourney
参考文章: https://mp.weixin.qq.com/s/3RdHPPhYgDfB6KY6Y9Sk2A跟AI有关的新闻,一个接着一个。前一天你还和往常一样进入梦乡,第二天醒来就能被新的AI新闻“炸弹”震得心惊。 以ChatGPT为代表的AI语言模型,以Midjourney为代表的…...
![](https://img-blog.csdnimg.cn/7ab4eaee028c4642b1efc099e4e1eb69.gif)
JVM学习 GC垃圾回收机制 (堆内存结构、GC分类、四大垃圾回收算法)
🤖 作者简介:努力的clz ,一个努力编程的菜鸟 🐣🐤🐥 👀 文章专栏:《JVM 学习笔记》 ,本专栏会专门记录博主在学习 JVM 中学习的知识点,以及遇到的问题。 …...
![](https://www.ngui.cc/images/no-images.jpg)
ChatGPT 有哪些神奇的使用方式?
ChatGPT在语言处理领域有着非常广泛的应用,可以用来进行语音识别、文本摘要、问答系统、机器翻译、智能客服、情感分析、智能写作等方面的应用。随着技术的不断发展和进步,ChatGPT在未来的应用场景和领域也将会有更加广泛的拓展和应用。ChatGPT可以应用于…...
![](https://img-blog.csdnimg.cn/ce46fdce66854635b9bca7db63865fef.gif)
【JavaEE】Java设计模式-单例模式(饿汉式与懒汉式)
目录 1.设计模式是啥? 2.单例模式 2.1什么是单例模式 2.2饿汉模式 2.3懒汉模式 3.懒汉模式与饿汉模式的区别 3.1.线程安全方面 3.2.资源加载和性能 4.如何保证懒汉模式的线程安全 1.设计模式是啥? 设计模式是前人经过总结,通过…...
![](https://img-blog.csdnimg.cn/img_convert/836e63975f3ee6cb9dd6ed3b71d5236a.png)
(算法基础)朴素版Prim算法
适用情景在最小生成树问题当中,涉及到权重和最小值。并且这个图是稠密图(n^2 ~ m)的情形下时间复杂度O(N^2)算法解释先得知道一下什么是无向图的生成树,树总该知道的吧,生成树就是包含这个无向图中的n个点,并且有n-1条边ÿ…...
![](https://i1.hdslb.com/bfs/archive/45abc0b0f39ffd415de9b4ad10d440616a639e83.jpg@100w_100h_1c.png@57w_57h_1c.png)
第十四届蓝桥杯三月真题刷题训练——第 23 天
目录 第 1 题:长草 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码: 思路: 第 2 题:蓝肽子序列_LCS_最长公共子序列dp问题 题目描述 输入描述 输出描述 输入输出样例 运行限制 代码: 思路&am…...
![](https://img-blog.csdnimg.cn/5b8131466f7f45dfb90e5a635a366f80.png)
基于springboot实现医院信息管理系统【源码+论文】
基于springboot实现医院信管系统演示开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包…...
CODESYS增量式PID功能块(ST完整源代码)
增量式PID的详细算法公式和博途源代码,请参看下面的文章链接: 博途1200/1500PLC增量式PID算法(详细SCL代码)_博图scl语言pid增量编码器_RXXW_Dor的博客-CSDN博客SMART200PLC增量式PID可以参看下面这篇博文,文章里有完整的增量式PID算法公式,这里不在赘述西门子SMARTPLC增量…...
![](https://img-blog.csdnimg.cn/c3e3e17584104abfafe8a597fc857bb0.png)
代码质量提升,代码扫描 review 之 Codacy 工具使用
目录一、什么是Codacy二、GitHub 上使用 Codacy三、Codacy上导入GitHub项目一、什么是Codacy Codacy 是用于代码 review 检测(即代码审查)的工具,目前支持对40多种编程语言检测,如 c、c、c#、java 、python、javascript 等。 Codacy 可用于 GitHub 和 …...
![](https://www.ngui.cc/images/no-images.jpg)
Centos Linux 正确安装 Redis 的方式
官方文档 Getting started with Redis | Redis 第一步 、下载源代码 源代码的下载方式有很多种,可以去源代码仓库下载,或者使用下面的命令下载 wget https://download.redis.io/redis-stable.tar.gz 第二步 、编译代码 tar -xzvf redis-stable.tar.…...
![](https://www.ngui.cc/images/no-images.jpg)
C++Primer第五版【阅读笔记】
CPrimer第五版 阅读笔记 第1章开始1.1 编写一个简单的C程序1.1.1 编译、运行程序1.2 初识输入输出第1章开始 学习一门新的程序设计语言的最好方法就是练习编写程序。 1.1 编写一个简单的C程序 每个C程序都包含一个或多个函数,其中一个必须命名为 main,…...
![](https://img-blog.csdnimg.cn/img_convert/5ee230632ebbe60287135cd9fc10027a.png)
ERD Online 4.0.11 在线数据库建模、元数据协作平台(免费、私有部署)
ERD Online 是全球第一个开源、免费在线数据建模、元数据管理平台。提供简单易用的元数据设计、关系图设计、SQL查询等功能,辅以版本、导入、导出、数据源、SQL解析、审计、团队协作等功能、方便我们快速、安全的管理数据库中的元数据。 4.0.11 ❝ :memo: fix(erd):…...
![](https://img-blog.csdnimg.cn/fd90e800c8784668b4111626bbc55868.png)
3.数组算法、动态规划
文章目录数组算法1.数组表示2.基本操作3.插入操作算法实例1实例2输出3.删除操作算法实例1输出4.搜索操作算法实例2输出5.更新操作算法实3例输出2.动态规划对照实例1数组算法 Array是一个容器,可以容纳固定数量的项目,这些项目应该是相同的类型。大多数数…...
![](https://img-blog.csdnimg.cn/img_convert/e824bf8170d978b8936afe491a23a17e.jpeg)
项目管理工具哪个好?最新排名
项目管理工具当下已经成为项目团队的重要榜首,一款合适好用的项目管理工具可以帮助处理很多机械化工作,将管理者更多精力投入到更有价值的工作中,还可以帮助团队组织和计划项目,跟踪进度,处理预算和协作。该如何挑选帮…...
![](https://img-blog.csdnimg.cn/770a07c616e1464d9ff51624c8f5d10a.png)
650. 只有两个键的键盘——【Leetcode每日一题】
650. 只有两个键的键盘 最初记事本上只有一个字符 A 。你每次可以对这个记事本进行两种操作: Copy All(复制全部):复制这个记事本中的所有字符(不允许仅复制部分字符)。Paste(粘贴)…...
![](https://img-blog.csdnimg.cn/c5a56d7de403401e9a1095a0e2b280a1.png)
【平常心无焦虑探讨】未来谁将被淘汰—在日常网络安全工作中使用GPT的感受
作者:Eason_LYC 悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。 一个人的价值,在于他所拥有的。所以可以不学无术,但不能一无所有! 技术领域:WEB安全、网络攻防 关注WEB安全、网络攻防。…...
![](https://img-blog.csdnimg.cn/img_convert/82f4b40c8e434b97ba6e3ea84565e869.png)
【C语言】深度理解指针(下)
一. 前言💎昨晚整理博客时突然发现指针还少了一篇没写,今天就顺便来补一补。上回书说到,emmm忘记了,没事,我们直接进入本期的内容:本期我们带来了几道指针相关笔试题的解析,还算是相对比较轻松的。话不多说…...
![](https://img-blog.csdnimg.cn/c3ad96b16d2e46119dd2b9357f295e3f.jpeg#pic_center)
【树与二叉树】树与二叉树的概念及结构--详解介绍
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:数据结构 🎯长路漫漫浩浩,万事皆有期待 文章目录1.树概念及结构1.1 树…...
![](https://img-blog.csdnimg.cn/4baac0869f6a4bacbeb1c76d3a8da59e.png)
Spring Boot集成RocketMQ实现普通、延时、事务消息发送接收、PULL消费模式及开启ACL | Spring Cloud 30
一、前言 在前面我们通过以下章节对RocketMQ有了基础的了解: docker-compose 搭建RocketMQ 5.1.0 集群(双主双从模式) | Spring Cloud 28 docker-compose 搭建RocketMQ 5.1.0 集群开启ACL权限控制 | Spring Cloud 29 现在开始我们正式学习…...
![](https://img-blog.csdnimg.cn/ba2c61996d184092aeed438eedf3e2fa.png)
人人都能看懂的Spring源码解析,Spring如何解决循环依赖
人人都能看懂的Spring源码解析,Spring如何解决循环依赖原理解析什么是循环依赖循环依赖会有什么问题?如何解决循环依赖问题的根本原因如何解决为什么需要三级缓存?Spring的三级缓存源码走读Spring的三级缓存提前暴露getSingleton方法总结往期…...
![](https://img-blog.csdnimg.cn/1abe7e972a5d46038ce5eb1a37e05398.png)
Linux上搭建Discuz论坛
一.准备工作 1.下载php*,mariadb-server 2.上传Discuz3.5压缩包并解压 二.搭建过程 基于redhat 9 版本和Discuz3.5,php8.0,mariadb10.5演示 一.准备工作 1.下载php*,mariadb-server [rootredhat9 aaa]# yum install -y php*…...
![](https://img-blog.csdnimg.cn/3a297cd8f156439caa5d919c4a4c0fa8.png)
【蓝桥杯专题】 树状数组(C++ | 洛谷 | acwing | 蓝桥)
菜狗现在才开始备战蓝桥杯QAQ 文章目录【蓝桥杯专题】 (C | 洛谷 | acwing | 蓝桥)什么是线段数组??1264. 动态求连续区间和数星星线段树AcWing 1270. 数列区间最大值PPPPPPP【蓝桥杯专题】 (C | 洛谷 | acwing | 蓝桥) 什么是…...
![](https://img-blog.csdnimg.cn/093706d56d8a4769b1816075ec295931.png#pic_center)
QCefView编译配置(Windows-MSVC)(11)
QCefView编译配置(Windows-MSVC) 文章目录QCefView编译配置(Windows-MSVC)1、概述2、准备工作3、添加环境变量4、更换cef源码版本5、CMake构建6、Visual Studio编译7、安装编译后的文件8、验证编译结果更多精彩内容👉个…...
![](https://www.ngui.cc/images/no-images.jpg)
Token原理
Q:分布式场景下如何生成token以及使用token的流程: 在分布式场景下,可以采用以下方式生成 token 和进行权限认证: 1. 生成 token: 使用JWT(JSON Web Token)生成 token。JWT 是一种基于 JSON …...
![](https://img-blog.csdnimg.cn/20a7f1b58dfb4660b75d7f021c157d57.png#pic_center)
③【Java组】蓝桥杯省赛真题 持续更新中...
个人简介:Java领域新星创作者;阿里云技术博主、星级博主、专家博主;正在Java学习的路上摸爬滚打,记录学习的过程~ 个人主页:.29.的博客 学习社区:进去逛一逛~ 蓝桥杯真题--持续更新中...一、错误票据题目描…...
![](http://oqwym6cik.bkt.clouddn.com/20180715153163692892664.png)
贵阳地铁建设网站/seo是什么工作内容
2019独角兽企业重金招聘Python工程师标准>>> [toc] 网络协议(networking protocol) 网络协议即为计算机网络中进行数据交换而建立的规则、标准或约定的集合。网络协议是由三个要素组成:语义、语法、时序,人们形象地把这…...
![](/images/no-images.jpg)
网站优化的主要任务/西安网络推广seo0515
解决$.getJSON在IE浏览器下出现数据缓存,第一次访问某个后台路径之后,再次访问该路径不再走后台的方法。最近写代码的时候遇到一个小问题,我用的是火狐,项目里测试人员用的是IE,当用jquery的getjson函数从后台获取数据的时候,IE浏览…...
![](https://images0.cnblogs.com/blog/470550/201411/181023434721193.jpg)
定制网站建设服务/百度指数的基本功能
最近在使用SQLite的数据库,发现SQLiteConnection类,有一个属性DateTimeKind 去msdn上找了下资料,http://msdn.microsoft.com/en-us/library/shx7s921(vvs.110).aspx 写了一个demo加深理解,代码已经上传至https://github.com/chucklu/Test/blo…...
![](/images/no-images.jpg)
外贸推广网站建设/谷歌seo价格
启动原理:调用mysqld_safe根据配置文件配置,然后mysqld_safe又去调用mysqld进程root 408 1 0 11:40 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file/data/3307/my.cnf mysql 1117 408 0 11:40 pts/0 00:00:00 /usr/local/m…...
![](https://img2018.cnblogs.com/blog/1338991/201903/1338991-20190309143819824-1330267820.png)
企业 网站 建设 规范/衡阳有实力seo优化
一、题目:解题报告,连除----399 已经给出了某些变量的比值,求新的变量的比值。如果这个变量没有出现过,或者不可到达,那么返回-1. DFS思路: 题目中给了顶点和顶点之间的关系,其实就是制定了这…...
![](http://www.f2e-arsenal.com/wp-content/uploads/2011/04/example3.png)
东营网站建设怎么建设/seo公司软件
最近Firefox 4和Firebug 1.7终于正式发布了,大家都积极上手体验了一番,很快有很多关于FF4的研究文章,我最近看了一篇专题文章,主要介绍了FF4与前期版本中js脚本执行方式的差异;当我们想要查看页面中的js脚本执行详情时…...