[数据结构]树与二叉树的性质

文章目录

  • 0.二叉树的形态和基本性质
  • 1.完全二叉树的叶子节点个数
  • 2.树的叶子节点个数
  • 3.线索二叉树
  • 4.树和森林和二叉树
  • 5.平衡二叉树的最少结点数
  • 6.树/二叉树/森林的转换

0.二叉树的形态和基本性质

  1. 一棵二叉树具有5中基本形态
  2. n个结点可以构造的二叉树种数: C2n-n/n+1

一棵树 n个结点

  1. n-1条边: 每一个结点头上都有一个边 除了根节点
  2. 对于二叉树 度数和 == n-1 每一条边就是一个度
  3. x0 = x2 + 1
  4. 边数 == 2x2 + x1

先根遍历和后根遍历序列完全相反

  1. 该树高度 == 结点数
  2. 该树只有一个叶子结点

对于二叉树的先/中/后根遍历

顺序完全一样 只不过根的位置不同

二叉树只有度为0和2的结点 二叉树结点个数至少为

2(h-1) + 1 : 第一层为1个 其余均为2个

二叉树的后序遍历非递归算法不使用栈

最佳方案是采用三叉链表

1.完全二叉树的叶子节点个数

  1. 假设
    叶子节点即度为0的有n0个
    度为1的节点个数为n1
    度为2的节点个数为n2
  2. 对于二叉树:
    n0+n1+n2=n
    n0=n2+1
    ===>n0=(n+1-n1)/2
  3. 对于完全二叉树:
    n1=0 或 1
  4. 总结:
    n1=0或者n为奇数 ==> n0 = (n+1)/2
    n1=1或者n为偶数 ==> n0 = n/2

2.树的叶子节点个数

设树T的度为4,其中度为1、2、3、4的结点个数分别为4、2、1、1。则T中有多少个叶子结点?

  1. n = n0 + n1 + n2 + n3 + n4 = n0 + 8
  2. 边数 = n - 1 且 度数和 = n - 1 ==> n = 度数和 + 1
  3. n = 14+22+31+41+1 = 16
  4. x0 == 8

3.线索二叉树

虽然在中序遍历时具有一定的优势,但也存在一些问题无法解决,包括以下几个方面:

  1. 插入和删除操作麻烦且速度较慢:由于线索二叉树中每个结点都需要维护前驱和后继指针,因此在插入和删除结点时需要更新这些指针,操作相对复杂且速度较慢。

  2. 线索子树不能共用:线索二叉树中的线索只能在某种遍历方式下使用,而不能在其他遍历方式下使用。这意味着如果需要在不同的遍历方式下使用线索,就需要对二叉树进行多次线索化,导致额外的时间和空间开销。

  3. 不支持动态结点的插入和删除:线索二叉树的线索化过程是在遍历过程中完成的,因此无法在遍历过程中动态地插入和删除结点。如果需要在遍历过程中动态地修改二叉树的结构,就需要重新线索化整个二叉树,效率较低。

  4. 需要额外的存储空间:线索二叉树中每个结点都需要维护前驱和后继指针,这会占用额外的存储空间。尤其是在结点较多的情况下,额外的存储空间开销会比较大。

综上所述,线索二叉树虽然在中序遍历时具有一定的优势,但在插入和删除操作、线索共用、动态结点修改和额外存储空间等方面存在一些问题无法解决。

不能有效解决先序线索二叉树找先序前驱和后序线索二叉树找后序后继。

4.树和森林和二叉树

  1. 求一个有 n 个非终端结点的森林/树对应的二叉树中右指针域为空的结点个数

n+1

  1. 树的先根遍历与其对应的二叉树先序遍历序列相同
  2. 树的后根遍历与其对应的二叉树中序遍历序列相同

对于一个有N个结点、K条边的森林,求有几棵树

假设有m棵树,第i棵树的节点数为ni ==> 第i棵树的边数为ni-1。
(n1 - 1) + … + (nm - 1) = K ⇒ N - m = K ⇒ m = N - K

5.平衡二叉树的最少结点数

F(n) = F(n-1) + F(n -2 ) + 1

F(1) = 1
F(2) = 2
F(3) = 4
F(4) = 7

最多即为满二叉树

6.树/二叉树/森林的转换

  1. 树变二叉树 : 兄弟相连留长子
    在这里插入图片描述
  2. 二叉树变树 : 左孩右右连双亲 去掉原来右孩线
    在这里插入图片描述
  3. 森林变二叉树: 各个树先变成二叉树 二叉树根相连
    在这里插入图片描述
  4. 二叉树变森林: 根的右子树独立成根 各个二叉树变树
    在这里插入图片描述

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

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

相关文章

项目记录:利用Redis实现缓存以提升查询效率

一、概述 当我们查询所有数据时,如果缓存中没有,则去数据库查询,如果有,直接查缓存的数据就行。注意定期更新缓存数据。 二、主体代码 private static final String ROOM_SCHEDULES_HASH "RoomSchedules";Overridepu…

【十】【C语言\动态规划】376. 摆动序列、673. 最长递增子序列的个数、646. 最长数对链,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略,它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题,并将每个小问题的解保存起来。这样,当我们需要解决原始问题的时候,我们就可以直接利…

微信小程序开发系列-08自定义组件模版特性

微信小程序开发系列目录 《微信小程序开发系列-01创建一个最小的小程序项目》《微信小程序开发系列-02注册小程序》《微信小程序开发系列-03全局配置中的“window”和“tabBar”》《微信小程序开发系列-04获取用户图像和昵称》《微信小程序开发系列-05登录小程序》《微信小程序…

红队打靶练习:MISDIRECTION: 1

信息收集 1、arp ┌──(root㉿ru)-[~/kali] └─# arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:69:c7:bf, IPv4: 192.168.12.128 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.12.1 00:50:56:c0:00:08 …

自动驾驶学习笔记(二十三)——车辆控制模型

#Apollo开发者# 学习课程的传送门如下,当您也准备学习自动驾驶时,可以和我一同前往: 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo开放平台9.0专项技术公开课》免费报名—>传送门 文章目录 前言 运动学模型 动力学模型 总结…

基于ssm的二手商品交易平台+vue论文

摘 要 信息数据从传统到当代,是一直在变革当中,突如其来的互联网让传统的信息管理看到了革命性的曙光,因为传统信息管理从时效性,还是安全性,还是可操作性等各个方面来讲,遇到了互联网时代才发现能补上自古…

《深入理解C++11:C++11新特性解析与应用》笔记五

第五章 提高类型安全 5.1 强类型枚举 5.1.1 枚举:分门别类与数值的名字 具名枚举类型一般声明类似:enum Gender { Male, Female }。 匿名枚举类型可以使用三种方式实现: 第一种方式时宏,比如 #define Male 0 #define Femal…

SpringBoot项目部署及多环境

1、多环境 2、项目部署上线 原始前端 / 后端项目宝塔Linux容器容器平台 3、前后端联调 4、项目扩展和规划 多环境 程序员鱼皮-参考文章 本地开发:localhost(127.0.0.1) 多环境:指同一套项目代码在把不同的阶段需要根据实际…

【Electron】webview 实现网页内嵌

实现效果: 当在输入框内输入某个网址后并点击button按钮 , 该网址内容就展示到下面 踩到的坑:之前通过web技术实现 iframe 标签内嵌会出现 同源策略,同时尝试过 vue.config.ts 内配置跨域项 那样确实 是实现啦 但不知道如何动态切换 tagert …

Java动态代理机制 代码示例demo

文章目录 JDK动态代理代码实现示例1.定义发送短信的接口2.实现发送短信的接口3.定义一个 JDK 动态代理类4.获取代理对象的工厂类5.实际使用 JDK 动态代理只能代理实现了接口的类CGLIB动态代理代码实现示例1.实现一个使用阿里云发送短信的类2.自定义 MethodInterceptor&#xff…

子网掩码与IP段计算

一.什么叫子网掩码: 子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。 子网掩…

Prometheus告警处理

Alertmanager介绍 Prometheus 包含一个报警模块,就是 AlertManager,Alertmanager 主要用于接收 Prometheus 发送的告警信息,它支持丰富的告警通知渠道,而且很容易做到告警信息进行去重、降噪、分组等,是一款前卫的告警…