2.专题. 逻辑层次结构——树

news2024/11/29 2:31:18

1. 树结构概述

现实生活中,具有很多层次关系:归纳为一种树状结构(一种层级结构)

在这里插入图片描述
在这里插入图片描述

2. 二叉树

2.2 二叉树分类

3.1.2.1 满二叉树

高度为4的满二叉树
在这里插入图片描述

3.1.2.2 完全二叉树

  • 若一棵二叉树至多只有最下面两层的结点的度数可以小于2,并且最下层的结点都集中在该层最左边的若干位置上,则此二叉树为完全二叉树。
    在这里插入图片描述

3.1.3 二叉树描述

数组描述:
高度为h的满二叉树,节点数为2^n -1:每一个节点的编号即为数组存储的下标

3.1.3.1 数组描述

在这里插入图片描述
在这里插入图片描述

3.1.3.2 链表描述

使用链表描述二叉树十分方便,通过指针实现
在这里插入图片描述

2.1 二叉树应用

2.1.1 数学表达式

在这里插入图片描述在这里插入图片描述

3.1.4 最大/最小 问题

最大树/最小树定义:
每个节点都大于(小于)或者等于其子节点的二叉树叫做最大(最小)树

3.1.4.1 最大堆

约束条件:完全树形态的最大树
节点插入 示例:
在这里插入图片描述
节点删除 示例:
在这里插入图片描述

3.1.4.2 最小堆

约束条件:完全树形态的最小树
在这里插入图片描述
在这里插入图片描述

3.1.4.3 最大/最小 高度优先左高树

约束条件:任意节点左子树高度大于右子树的最大或者最小树
节点的高度:
在这里插入图片描述
高度优先左高树约束条件:

  • 左子树高度大于右子树高度

最大高度优先左高树合并
在这里插入图片描述

3.1.4.4 最大/最小 重量优先左高树

节点的重量:
在这里插入图片描述

3.1.5 输赢问题

3.1.5.1 赢者树

赢者树约束条件:

  • 完全二叉树(推荐,也可以不是)
  • 外部节点为n,内部节点为n-1(内部节点用于记录胜利的外部节点)

在这里插入图片描述

3.1.5.2 输者树

在这里插入图片描述在这里插入图片描述

3.1.5 搜索问题

3.1.5.1 二叉搜索树

约束条件:

  • 每个节点都有关键值,并且都是唯一的(无重复)
  • 对于任意节点,左节点小于根节点,右节点大于根节点
  • 子树也是二叉搜索树

节点插入:
查询时,查询节点关键值小于根节点在左子树去找,否则在右子树找(依次递归)

在这里插入图片描述
节点删除包括三种情况:
节点为叶节点、节点有一个非空子树,节点有两个非空子树;

  • 叶节点删除可以直接删除叶节点即可,是节点插入的逆向操作

  • 节点有一个非空子树
    分成两种情况处理
    在这里插入图片描述

  • 节点有两个非空子树
    把左子树最大节点或者右子树最小节点移动到被删除节点即可

在这里插入图片描述
在这里插入图片描述或者移动左子树最大的节点

在这里插入图片描述

3.1.5.2 AVL树

对于二叉树搜索树,形状为左斜或者右斜二叉树时,搜索的任意节点其复杂度上限可以表示为O(n),n表示为二叉树节点数目

  • 定义 [平衡树]
    当确定搜索树的高度总是O ( l o gn)时,能够保证每个搜索树操作所占用的时间为O( l o gn),高度为O( l o gn)的树称为平衡树(balanced tree)

AVL树是一种平衡树
约束条件:
空二叉树是AV L树;
如果T是一棵非空的二叉树,TL 和TR 分别是其左子树和右子树,那么当T满足以下条件时,T是一棵AV L树:

  1. TL 和TR 是AV L树;
  2. | hL - hR |≤1, hL 和hR 分别是左子树和右子树的高度。

AVL树图示
在这里插入图片描述
AVL树搜索
AVL树插入
AVL树删除

3.1.5.3 红黑树

红黑树是一种平衡树

红黑树约束条件:
R B 1:根节点和所有外部节点的颜色是黑色。
R B 2:根至外部节点途中没有连续两个节点的颜色是红色。
R B 3:所有根至外部节点的路径上都有相同数目的黑色节点。

红黑树搜索

红黑树插入

红黑树删除

3.1.5.4 m杈搜索树

3.1.5.4.1 m杈搜索树

m杈搜索树

3.1.5.4.2 m序B-树

m序 B-树

4 图

图简介

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

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

相关文章

保护私密文件夹,可以这样设置隐藏起来

很多小伙伴在工作或生活中,都会有一些文件资料,不希望被让人随意看到,想要隐藏起来。其实只需要一个简单的操作,就可以把文件隐藏起来,不让人发现。 首先,我们可以先将需要隐藏的文件都放在一个文件夹里&a…

java常见的遍历

日常遍历的几种方式 首先我们先了解一下集合容器中日常遍历的几种方式&#xff1a; List集合遍历方式&#xff08;ArrayList&#xff09; // 遍历list集合private static void listTest() {List<String> list new ArrayList<String>();list.add("liubei&quo…

【Redis】新增数据结构

BitMap位图 Redis提供了Bitmaps这个“数据类型”可以实现对位的操作&#xff1a; &#xff08;1&#xff09; Bitmaps本身不是一种数据类型&#xff0c; 实际上它就是字符串&#xff08;key-value&#xff09; &#xff0c; 但是它可以对字符串的位进行操作。 &#xff08;2…

操作系统学习笔记_3 管程;死锁;内存

管程 信号量挺琐碎的&#xff0c;而且容易出错&#xff0c;顺序错了都会影响结果。 管程内的数据只有在管程内的过程&#xff08;函数&#xff09;才能访问&#xff1b;一次只允许一个进程进入管程。 monitor 是 java 语法的管程&#xff0c;每次只允许一个进程访问&#xff0…

[附源码]Python计算机毕业设计房屋租赁系统Django(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程 项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等…

关于求解器HFSS的那些事,以一个差分对仿真实操为例

很多刚刚接触HFSS的朋友可能对Solution type中的Driven Modal&#xff08;模式驱动&#xff09;和Driven Terminal&#xff08;终端驱动&#xff09;的概念有点混淆&#xff0c;本文着重讲解这两种求解类型的区别。 一、模式驱动和终端驱动的理解 模式驱动和终端驱动是HFSS的…

1.专题 存储结构和逻辑结构

1. 存储结构 软件完成对象抽象&#xff0c;需要分配一定的内存资源。 根据对象对内存使用的特征&#xff0c;可以把数据存储的特征划分为&#xff1a; 顺序存储链接存储索引存储 和 散列存储 1.1 顺序存储 对象占用的资源表现为一段连续的内存存储 图示如下&#xff1a; M…

产品分享:Qt鸿途电子智慧白板(适合会议机、电子黑板、电子笔记、电子阅读器等场景),当前版本v1.0.0

​若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/128313385 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、…

使用notepad++插件远程编辑linux下的配置文件

目录 1.安装插件管理器(Plugin Manager) 2.安装NppFTP 3.使用nppFTP连接远程linux服务器 1.安装插件管理器(Plugin Manager) 如果没有则需要安装 32bit 在v7.50后&#xff08;包括7.50&#xff09;不带有插件管理器(Plugin Manager)&#xff0c;所以我们需要手动安装 Plug…

高校房产管理系统主要功能模块有哪些?

数图互通房产管理 数图互通高校房产管理系统是基于公司自主研发的FMCenterV5.0平台&#xff0c;是针对中国高校房产的管理特点和管理要求&#xff0c;研发的一套标准产品&#xff1b;通过在中国100多所高校的成功实施和迭代&#xff0c;形成了一套成熟、完善、全生命周期的房屋…

Spire.XLS for Java 12.11.8 新年/圣诞巨献

Spire.XLS for Java是一个专业的 Java Excel API&#xff0c;使开发人员无需使用 Microsoft Office 或 Microsoft Excel即可创建、管理、操作、转换和打印 Excel工作表。 谷歌轻松找破解版 Spire.XLS for Java 支持旧的 Excel 97-2003 格式&#xff08;.xls&#xff09;和新的…

KingbaseES V8R3集群备份恢复案例之--- timingbackup备份

案例说明&#xff1a; KingbaseES V8R3集群自带了timingbackup.sh的脚本&#xff0c;可以通过一个脚本执行逻辑和物理备份&#xff0c;逻辑备份采用sys_dump&#xff0c;物理备份适用sys_basebackup&#xff0c;本案例详细记录了脚本的使用。 适用版本&#xff1a; KingbaseES …

利用催眠技巧绕开OpenAI的内容政策限制(仅供研究使用)

fork的仓库&#xff1a;https://github.com/JanYork/chatgpt-chinese-prompt-hack 声明&#xff1a;请仅作研究之用&#xff0c;不要违规使用&#xff01; 在hack成功后,通过屏蔽moderetions的api请求,可以绕过OpenAI对于输出内容的审查. 地址为:https://chat.openai.com/back…

国产免费倾斜摄影模型在线发布平台,一键查看、编辑、分享场景!

数十GB庞大的城市级三维实景模型&#xff0c;想在Web端加载并实时交互&#xff0c;看到每块地形、建筑物、每寸土地细节&#xff0c;不是一般平台能承受的。一般只能靠人工手动将模型压缩&#xff0c;不仅耗时耗力&#xff0c;效果还不可控。毕竟城市级的大体量模型不是每台设备…

物联网通信技术第9章 异构网络协同通信

9.1 异构网络模型 发展趋势 &#xff1a;用户对数据业务和移动业务的需求日渐增加&#xff0c;使用户需求呈现个性化、多样化等特点。 在异构多模式网络系统中&#xff0c;移动用户可以通过多模式多接口特性连接任一种网络。 异构网络&#xff1a; 指两个或以上的无线通信系统…

Meta AI 更新的 Data2vec 2.0 | 实现更快、更高效的视觉、语音和文本的自监督学习

文章目录一、前言二、data2vec 2.0 是如何工作的三、使用 data2vec 2.0 提高效率四、总结CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 一、前言 论文地址&#xff1a;Data2vec: A General Framework for Self-supervised Learning in Speech, Vision and Langua…

MySQL - 1

Step1 : 下载 &#xff08;https://downloads.mysql.com/archives/community/&#xff09; ZIP版本免安装&#xff0c;直接解压 版本&#xff1a;5.7.31 文件名&#xff1a;Windows (x86, 64-bit), ZIP Archive Step2&#xff1a;解压 路径建议&#xff1a;C:\Program Files\m…

JAVA中的注解可以继承吗?

前言 注解想必大家都用过&#xff0c;也叫元数据&#xff0c;是一种代码级别的注释&#xff0c;可以对类或者方法等元素做标记说明&#xff0c;比如Spring框架中的Service&#xff0c;Component等。那么今天我想问大家的是类被继承了&#xff0c;注解能否继承呢&#xff1f;可…

五、Docker 镜像发布阿里云、私有库(详解、实操)第二篇

第一篇连接:https://blog.csdn.net/u011837804/article/details/128311791 3、本地镜像发布到私有库 3.1、Docker Registry是什么 Registry 是一个无状态、高度可扩展的服务器端应用程序,用于存储并允许您分发 Docker 镜像。 如果学过maven 就知道maven有私服,那这个就是…

[附源码]Python计算机毕业设计Django基于SpringBt的演唱会购票系统论文2022

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…