当前位置: 首页 > news >正文

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.lryc.cn/news/324089.html

相关文章:

  • LeetCode热题Hot100-两数之和
  • 鸿蒙实战开发-如何通过拖动滑块调节应用内字体大小
  • matlab实现神经网络检测手写数字
  • 增强现实与虚拟现实中的大模型应用:沉浸式体验的创新
  • 【数据分析案列】--- 北京某平台二手房可视化数据分析
  • 【Golang星辰图】创造美丽图表,洞察数据:解析Go语言中的数据可视化和数据分析库
  • 阿里云原生:如何熟悉一个系统
  • Scala第十一章节(正则表达式和异常处理)
  • Flutter运行MacOs网络请求报错Unhandled Exception: DioException [connection error]:...
  • 基于SpringBoot+MyBatis框架的智慧生活商城系统的设计与实现(源码+LW+部署+讲解)
  • Godot 学习笔记(5):彻底的项目工程化,解决GodotProjectDir is null
  • Openharmony
  • 24计算机考研调剂 | 华南师范大学
  • 【Node.js】全局变量和全局 API
  • Install Docker
  • Orbit 使用指南 10|在机器人上安装传感器 | Isaac Sim | Omniverse
  • GPT系列模型的特点
  • Oracle Data Guard常用命令
  • IM系统设计之websocket消息转发
  • 关于vue 的生命周期的教程
  • STM32 CAN的工作模式
  • Java中的常用类之Math类
  • Android冷启动优化
  • jmeter之接口功能自动化
  • 【openGL4.x手册07】几何着色器
  • 鸿蒙OpenHarmony开发实战:【MiniCanvas】
  • 【JavaEE初阶系列】——单例模式 (“饿汉模式“和“懒汉模式“以及解决线程安全问题)
  • flutter-elinux的基本介绍及安装调试
  • 二分查找法总结
  • Python工具-清理Unity(批量深度)清理U3D项目工程保留关键工程文件