C语言:二叉树基础

一、树

1.1    树的概念

1.树是有n个节点组成的具有层次关系的集合,是一种非线性的结构。

2.树的第一个节点称为根,根没有前驱节点。

3.除了根节点,其余每个节点都只有一个前驱节点,有0个或多个后继节点。

4.节点的度:一个节点含有子树的个数(后继节点的个数)称为该节点的度。

5.叶子节点或终端节点:度为0的节点。

6.非终端节点或分支节点:度不为0的节点。

7.父节点或子节点:如果一个节点含有子节点(后继节点),则这个节点为子节点的父节点。

8.子节点或孩子节点:如果一个节点含有父节点(前驱节点),则这个节点为父节点的子节点。

9.兄弟节点:具有相同父节点的节点互为兄弟节点。

10.树的度:在一颗树中,所有节点中度最大的节点的度,就是这颗树的度。

11.节点的层次:从根开始位第一层,根的子节点为第二层,以此类推。

12.树的高度或深度:节点的最大层次即为树的高度。

13.堂兄弟节点: 两个节点的父节点在同一层的节点互为堂兄弟节点。

14.节点的祖先:从该节点到根经过的所有节点均为该节点的祖先。根节点是所有节点的祖先。

15.子孙:以某一个节点为根的子树中的任意节点都是该节点的子孙。

16.森林:有n(n>0)棵互不相交的树的集合称为森林。

二、二叉树

2.1二叉树的概念

1.概念:如果一颗树的所有节点的子节点都不超过2,则这颗树可以称为二叉树。

2.满二叉树:如果一个二叉树的每一层节点数都达到最大,则这个二叉树为满二叉树。

3.完全二叉树:完全二叉树与满二叉树的区别在最后一层,完全二叉树的最后一层最后一层可以不满,但从左至右的节点必须连续不能有空。满二叉树是一种特殊的完全二叉树。

4.二叉树的性质:

 1. 若规定根节点的层数为i,则一棵非空二叉树的i层上最多有 2^(i-1)个结点.

2. 若规定根节点的层数为i,则深度为h的二叉树的最大结点数是2^i-1.

3. 对任何一棵二叉树 , 如果度为0 其叶结点个数为x , 度为 2 的分支结点个数为y  ,则x=y+1.
4. 若规定根节点的层数为 1 ,具有 n 个结点的满二叉树的深度 ,h=log(n+1)
5. 对于具有 n 个结点的完全二叉树,如果按照从上至下从左至右的数组顺序对所有节点从 0开始编号,则对于序号为i的结点有:
1. i>0i位置节点的双亲序号:(i-1)/2i=0i为根节点编号,无双亲节点
2. 2i+1<n,左孩子序号:2i+12i+1>=n否则无左孩子
3. 2i+2<n,右孩子序号:2i+22i+2>=n否则无右孩子

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

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

相关文章

主干网络篇 | YOLOv8更换主干网络之GhostNet

前言:Hello大家好,我是小哥谈。GhostNet是2019年由华为诺亚方舟实验室发布的轻量级网络,速度和MobileNetV3相似,但是识别的准确率比MobileNetV3高,在ImageNet ILSVRC2012分类数据集的达到了75.7%的top-1精度。该论文提除了Ghost模块,通过廉价操作生成更多的特征图。基于一…

是德科技keysight DSOX3024T示波器

181/2461/8938产品概述&#xff1a; DSOX3024T 示波器 要特性与技术指标 使用电容触摸屏进行简洁的触控操作&#xff1a; •提高调试效率 •触控设计可以简化文档记录 •使用起来就像您喜欢的智能手机或平板电脑一样简单 使用 MegaZoom IV 技术揭示偶发异常&#xff1a; •超快…

思通舆情 是一款开源免费的舆情系统 介绍

思通舆情 是一款开源免费的舆情系统。 支持本地化部署&#xff0c;支持在线体验。 支持对海量舆情数据分析和挖掘。 无论你是使用者还是共同完善的开发者&#xff0c;欢迎 pull request 或者 留言对我们提出建议。 您的支持和参与就是我们坚持开源的动力&#xff01;请 sta…

申请双软认证需要哪些材料?软件功能测试报告怎么获取?

“双软认证”是指软件产品评估和软件企业评估&#xff0c;其中需要软件测试报告。 企业申请双软认证除了获得软件企业和软件产品的认证资质&#xff0c;同时也是对企业知识产权的一种保护方式&#xff0c;更可以让企业享受国家提供给软件行业的税收优惠政策。 那么&#xff0c;…

6-191 拓扑排序

一项工程由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其他子任务后才能执行。例如,下图表示了一项工程若干子任务之间的先后关系。 编写函数输出所有子任务的拓扑序列。 函数接口定义: Status Push_SeqStack(SeqStack &s, ElemType x)//入栈,x入到…

AS:32590 美国Valve公司IP地址段,抓CS:GO游戏服务器IP

抓 Valve 公司的IP地址段&#xff0c;主要用途是为了CS:GO网络游戏加速IP地址段&#xff0c;严格意义上来说&#xff0c;不同地区对于CS:GO游戏网络加速&#xff0c;需要对应到对应地区去抓IP地址段。 以CS:GO香港地区为例子&#xff1a;抓出来的IP地址基本都是新加坡、香港两…

框架结构模态分析/动力时程分析Matlab有限元编程 【Matlab源码+PPT讲义】|梁单元|地震时程动画|结果后处理|地震弹性时程分析| 隐式动力学

专栏导读 作者简介&#xff1a;工学博士&#xff0c;高级工程师&#xff0c;专注于工业软件算法研究本文已收录于专栏&#xff1a;《有限元编程从入门到精通》本专栏旨在提供 1.以案例的形式讲解各类有限元问题的程序实现&#xff0c;并提供所有案例完整源码&#xff1b;2.单元…

蓝桥杯单片机快速开发笔记——特训4 24C02—E2PROM存储按键触发次数

一、原理分析 HC573/HC138&#xff1a;http://t.csdnimg.cn/W0a0U 数码管&#xff1a;http://t.csdnimg.cn/kfm9Y AT24C02 E2PROM&#xff1a;http://t.csdnimg.cn/DI8XH 独立键盘&#xff1a;http://t.csdnimg.cn/YPInc 二、题目要求 在CT107D单片机综合训练平台上&#xff0…

基于springboot+vue的旅游网站

博主主页&#xff1a;猫头鹰源码 博主简介&#xff1a;Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战&#xff0c;欢迎高校老师\讲师\同行交流合作 ​主要内容&#xff1a;毕业设计(Javaweb项目|小程序|Pyt…

JavaScript 权威指南第七版(GPT 重译)(六)

第十五章&#xff1a;JavaScript 在 Web 浏览器中 JavaScript 语言是在 1994 年创建的&#xff0c;旨在使 Web 浏览器显示的文档具有动态行为。自那时以来&#xff0c;该语言已经发生了显著的演变&#xff0c;与此同时&#xff0c;Web 平台的范围和功能也迅速增长。今天&#…

2024.3.24阶段性测试题解

VJ测试链接考试链接 成绩表如下&#xff0c;信息学是非常检验平时努力的&#xff0c;而且也是一分耕耘一分收获的&#xff0c;总的来说每天订正晚训跟只订正一部分题还是有区别的…希望同学们再接再厉。 A题 简单判断题&#xff0c;单独判断首字母&#xff0c;再判断其余字母…

Java 学习和实践笔记(45):数组的遍历,复制,

数组的两种遍历方式&#xff1a; package innerClass;public class Test01 {public static void main(String[] args) {String[] cities {"北京","上海","广州","深圳",};//遍历方式一&#xff0c;这是一般的方式for (int i0; i<…

AI大模型学习:理论基石、优化之道与应用革新

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…

列车票务信息管理系统设计与实现|jsp+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW调试部署环境&#xff0c;文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java…

100道面试必会算法-11-LFU缓存

100道面试必会算法-11-LFU缓存 题目描述 最不经常使用&#xff08;LFU&#xff09;缓存算法设计并实现数据结构。 实现 LFUCache 类&#xff1a; LFUCache(int capacity) - 用数据结构的容量 capacity 初始化对象int get(int key) - 如果键 key 存在于缓存中&#xff0c;则…

mysql 事务的四大特性以及实现原理

MySQL 事务的四大特性通常指ACID&#xff0c;即原子性&#xff08;Atomicity&#xff09;、一致性&#xff08;Consistency&#xff09;、隔离性&#xff08;Isolation&#xff09;和持久性&#xff08;Durability&#xff09;。 原子性&#xff08;Atomicity&#xff09;&…

OpenLayers基础教程——WebGLPoints中要素样式的设置方法解析

1、前言 前一篇博客介绍了如何在OpenLayers中使用WebGLPoints加载海量数据点的方法&#xff0c;这篇博客就来介绍一下WebGLPoints图层的样式设置问题。 2、样式运算符 在VectorLayer图层中&#xff0c;我们只需要创建一个ol.style.Style对象即可&#xff0c;WebGLPoints则不…

重新排序(蓝桥杯,acwing,差分)

题目描述&#xff1a; 给定一个数组 A 和一些查询 Li,Ri&#xff0c;求数组中第 Li至第 Ri 个元素之和。 小蓝觉得这个问题很无聊&#xff0c;于是他想重新排列一下数组&#xff0c;使得最终每个查询结果的和尽可能地大。 小蓝想知道相比原数组&#xff0c;所有查询结果的总…

Photoshop 工具使用详解(全集 · 2024版)

全面介绍 Photoshop 工具箱里的工具&#xff0c;点击下列表格中工具名称或图示&#xff0c;即可查阅工具的使用详解。 移动工具Move Tool移动选区、图层和参考线。画板工具Artboard Tool创建、移动多个画布或调整其大小。moVe快捷键&#xff1a;V 矩形选框工具 Rectangular Mar…

信号处理之快速傅里叶变换(FFT)

信号处理之快速傅里叶变换FFT 历史溯源欧拉公式傅里叶级数(FS)傅里叶变换(FT)离散傅里叶级数(DFS)离散时间傅里叶变换(DTFT)离散傅里叶变换(DFT)快速傅里叶变换(FFT)MATLAB中常用的FFT工具FFT中常见的问题 历史溯源 相信很多人知道傅里叶变换&#xff0c;但是很多人对傅里叶变…