数据结构(六)—— 二叉树(1)基础

news2024/9/21 18:30:31

文章目录

  • 前言
  • 一、二叉树
    • 1.1 满二叉树
    • 1.2 完全二叉树
    • 1.3 二叉搜索树
    • 1.4 平衡二叉搜索树
  • 二、二叉树的遍历
    • 2.1 深度优先遍历(DFS)
    • 2.2 广度优先遍历(BFS)
  • 三、二叉树的代码定义


前言

提示:这里可以添加本文要记录的大概内容:

例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。


提示:以下是本篇文章正文内容,下面案例可供参考

一、二叉树

二叉树的存储方式链式存储

1.1 满二叉树

1.2 完全二叉树

底部从左到右一定连续
堆 是一个 完全二叉树,在c++中为优先级队列(小顶堆或大顶堆)
在这里插入图片描述

1.3 二叉搜索树

二叉搜索树是一个有序树。
1 若它的左子树不空,则左子树上所有结点的值均小于它的根结点的值
2 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值
3 它的左、右子树也分别为二叉排序树
在这里插入图片描述

1.4 平衡二叉搜索树

它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。

C++中map、set、multimap,multiset的底层实现都是平衡二叉搜索树,所以map、set的增删操作时间时间复杂度是logn,
PS:unordered_map、unordered_set,unordered_map、unordered_set底层实现是哈希表。

二、二叉树的遍历

2.1 深度优先遍历(DFS)

前序、中序、后序遍历都是深度优先,可以使用递归法或是迭代法。
(二叉树不得不说递归,有的迭代法写起来会很吃力。递归的代码一般很简短,一看就会,一写就废。)

PS:
前序:中左右
中序:左中右
后序:左右中

2.2 广度优先遍历(BFS)

层序遍历(迭代法),使用队列来层层搜索

三、二叉树的代码定义

struct TreeNode{
	int val;
	TreeNode* left;
	TreeNode* right;
	TreeNode(int t): val(t), left(NULL), right(NULL) {}
};

coding的时候用

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

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

相关文章

学习路线之白银5

init background 这个阶段你就要开始正式学习c了, 并且了解一些常用的git操作。 C 理解程序的编译流程,并映射到gcc和头文件的使用中。区分头文件, 源码等之间的关系理解编译工具的基本使用简单掌握基本的类和函数等常见语法,…

MapSet

在之前数据结构的学习中,对于数据的查找都是基于给定一个值,通过和序列中的关键字比较而实现的。因此这样的查找效率一般都是更依赖于比较的次数,像直接遍历或二分查找都是如此。而如果我们可以不经过任何比较,只是通过记录的关键…

外链跳转页功能分析与实现

一个大型的正规网站,增加一个 外链中转页 是有必要的。合理的交互设计,不仅能有效保障用户体验,又能帮助网站收集外链数据,优化运营管理。 目录 1、为什么使用跳转页面来管理外链 1.1、安全性 1.2、搜索引擎优化 1.3、外链数据…

JVM学习(九):堆

一、堆(Heap)的概述 一个JVM实例只存在一个堆内存,堆也是Java内存管理的核心区域。 Java堆区在JVM启动的时候即被创建,其空间大小也就确定了。是JVM管理的最大一块内存空间。同时,堆内存的大小是可以调节的。《Java虚拟…

ESP32-硬件IIC读取温湿度传感器SHT30

简介 esp32 使用硬件I2C读取温湿度传感器SHT30,例程基于EDP-IDF-4.4.X 的I2C Simple Example 例程修改 工程创建 打开 VSCODE ,通过 查看-- 命令面板(快捷键CtrlShiftP),打开 ESP-IDF 的例程后,选择 i2c_simple 例程&#xff0…

深度学习卷积神经网络学习小结

————————————————————————————————————————————— 学习小结: 1)深度学习综述;(2)对卷积神经网络(CNN)的认识;(3&#xff0…

C语言中函数宏的三种封装方式详解

目录 ​编辑 1. 函数宏介绍 3. do{...}while(0) 方式 4. ({}) 方式 5. 总结 1. 函数宏介绍 函数宏,即包含多条语句的宏定义,其通常为某一被频繁调用的功能的语句封装,且不想通过函数方式封装来降低额外的弹栈压栈开销。 函数宏本质上为…

Winform从入门到精通(37)—FolderBrowserDialog(史上最全)

文章目录 前言1、Name2、Description3、RootFolder4、SelectedPath5、ShowNewFolderButton前言 当需要获取一个可以通过用户自由选择路径的时候,这时候就需要FolderBrowserDialog控件 1、Name 获取FolderBrowserDialog对象 2、Description 用于指示对话框的描述,如下: …

leetcode刷题(10)二叉树(4)

各位朋友们,大家五一劳动节快乐啊,在这里祝大家假期玩得愉快!但是在玩耍的期间不要忘记了敲代码哦。今天我为大家分享的是二叉树的第四篇,废话不多说,我们一起来看看吧。 文章目录 二叉树的最近公共祖先题目要求做题思…

Stable Diffusion Controlnet V1.1 的14种基础标志用法

用于ControlNet和其他基于注入的SD控件的WebUI扩展。 针对 AUTOMATIC1111 的 Stable Diffusion web UI 网络用户界面的扩展,它可以让网络界面在原始的 Stable Diffusion 模型中添加 ControlNet 条件来生成图像。这种添加是实时的,不需要进行合并。 Con…

【openAI】Whisper如何高效语音转文字(详细教程)

文章目录 前言一、准备二、使用Whisper进行语音转文字三.Whisper转换结果分析总结 前言 语音转文字在许多不同领域都有着广泛的应用。以下是一些例子: 1.字幕制作:语音转文字可以帮助视频制作者快速制作字幕,这在影视行业和网络视频领域非常…

【软件下载】换新电脑记录下下载的软件时所需地址

1.idea https://www.jetbrains.com/zh-cn/idea/download/other.html 2.oracle官方(下载jdk时找的) https://www.oracle.com/ 3.jdk8 https://www.oracle.com/java/technologies/downloads/ 下拉找到jdk8 切换windows (需要注册个oracle账…

TabError: inconsistent use of tabs and spaces in indentation

错误原因是tab制表符和空格混用了。从其他地方复制源码容易出现此错误 解决办法:把处于同级缩进的所有缩进修改统一 比较流行的几个编辑器都能标识tab和空格,比如我用的vscode 用鼠标框选不知道是tab还是空格的部分。 若是空格则显示为上图73行所示的点…

自动化运维工具一Ansible Roles实战

目录 一、Ansible Roles概述 1.1.roles官方的目录结构 1.2.Ansible Roles依赖关系 二、Ansible Roles案例实战 2.1.Ansible Roles NFS服务 2.2 Roles Memcached 2.3 Roles-rsync服务 一、Ansible Roles概述 之前介绍了 Playbook 的使用方法,对于批量任务的部…

C++程序设计——常见C++11新特性

一、列表初始化 1.C98中{}的初始化问题 在C98中,允许使用花括号{}对数组元素进行统一的列表初始化值设定,比如: 但是对于一些自定义类型,就无法使用这样的方式进行初始化了,比如: 就无法通过编译&#xff…

HIT-CSAPP实验二gdb和edb的配置

笔者只是根据自己的电脑进行环境的配置,不一定适配所有的电脑,也不是万能的方法,如果读者使用本人的方法没有配置成功本人深表抱歉。 gdb的使用 通过网上查阅一些资料获得 gdb查看内存和寄存器以及中断设置(转)_gdb…

关于安装PicGo后启动无界面问题

关于安装PicGo后启动无界面问题 其实我遇到的这个也不算是问题,也挺无语的。 最近为了搭建图床,需要使用PicGo,第一次搭建图床也是第一次使用PicGo。在安装了PicGo后发现启动不了,查看后台发现PicGo在运行着,但是没有界…

数据结构与算法九 树进阶

一 平衡树 之前我们学习过二叉查找树,发现它的查询效率比单纯的链表和数组的查询效率要高很多,大部分情况下,确实是这样的,但不幸的是,在最坏情况下,二叉查找树的性能还是很糟糕。 例如我们依次往二叉查找…

User Experience Design and Information Architecture

💥(1) What is IA (Information Architecture)? Definition of four sentences I. Information Architecture is "The structure design of shared informaiton environments-共享信息环境的结构设计" II. Information Architecture is "The sy…

ChatGPT提示词工程(三):Summarizing概括总结

目录 一、说明二、安装环境三、概括总结(Summarizing)1. 简单地概括总结,只有字数限制2. 概括总结需要关注的某些点 四、用“提取”代替“总结”(Try "extract" instead of "summarize")五、概括总…