基本二叉树

news2025/1/13 2:28:50

文章目录

  • 接口实现
    • 三种基本遍历方式
    • 获取节点个数
    • 获取叶子节点个数
    • 获取树的高度
    • 返回第K层节点个数
    • 返回x所在节点
    • 二叉树的销毁
  • OJ
  • 二叉树知识点及选择题
    • N0 = N2 + 1
    • 由中序和前序(或后序)确定结构的方法
    • 有N个元素的完全二叉树的深度是 logN + 1
    • 选择题:二叉树的最小深度
    • 选择题:深度范围
    • 选择题:先序遍历序列与后序遍历序列正好相反

接口实现

三种基本遍历方式

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

获取节点个数

在这里插入图片描述

获取叶子节点个数

在这里插入图片描述

获取树的高度

在这里插入图片描述

返回第K层节点个数

在这里插入图片描述

返回x所在节点

在这里插入图片描述

二叉树的销毁

在这里插入图片描述

OJ

单值二叉树

相同的树

对称二叉树

前序遍历

另一颗树的子树

二叉树的构建和遍历

二叉树知识点及选择题

N0 = N2 + 1

推导如下:在这里插入图片描述

由中序和前序(或后序)确定结构的方法

如果是前序,正着看第一个就是根节点。把根节点确定之后看中序,找到中序中的根节点,在中序中在根节点左边的节点就在结构中根节点的左边,右边反之。这样确定之后再正着看前序,重复上面的逻辑。
如果是后序,反着看即可,最后一个节点即为根节点。

例题:已知某二叉树的中序遍历序列为JGDHKBAELIMCF,后序遍历序列为JGKHDBLMIEFCA,则其前序遍历序列为(ABDGJHKCEILMF )

有N个元素的完全二叉树的深度是 logN + 1

如果是满二叉树,也可以说是log(N +1)

选择题:二叉树的最小深度

一颗拥有1000个结点的树度为4,则它的最小深度是( 5 )
解析:如果这棵树每一层都是满的,则它的深度最小,假设它为一个四叉树,高度为h,则这个数的节点个数为(4^h - 1) / 3,当h = 5, 最大节点数为341, 当h = 6, 最大节点数为1365,所以最小深度应该为6。

选择题:深度范围

设根结点的深度为1,则一个拥有n个结点的二叉树的深度一定在( )区间内
[log(n + 1),n]

选择题:先序遍历序列与后序遍历序列正好相反

一棵非空的二叉树的先序遍历序列与后序遍历序列正好相反,则该二叉树一定满足( )
前序遍历: 根 左 右
后序遍历: 左 右 根

若是前序和后序正好相反
则 根 右 左 = 根 左 右
说明右和左必有一个为空,即所有节点都是叶子节点

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

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

相关文章

Linux常用命令——sftp命令

在线Linux命令查询工具(http://www.lzltool.com/LinuxCommand) sftp 交互式的文件传输程序 补充说明 sftp命令是一款交互式的文件传输程序,命令的运行和使用方式与ftp命令相似,但是,sftp命令对传输的所有信息使用ssh加密,它还…

预处理【详解】

本期介绍🍖 主要介绍:#define如何定义宏,宏替换的规则,为什么宏定义时不要吝啬我们的括号,为什么宏的参数不能带有副作用,宏和函数的区别。还讲解了预处理符号#和##,#undef指令,众多…

Swift(4)

目录 Dictionary集合 组合赋值符号 区间运算符 字符串字面量里的特殊字符 操作字符 Dictionary集合 相当于java中的Map集合 函数与闭包 函数也可以内嵌 函数其实就是闭包的一种特殊形式:一段可以被随后调用的代码块。闭包中的代码可以访问其生效范围内的变量和…

SpringMVC的@RequestMapping注解

SpringMVC的RequestMapping注解RequestMapping注解的功能RequestMapping注解的位置RequestMapping注解的value属性RequestMapping注解的method属性RequestMapping注解的params属性RequestMapping注解的headers属性什么是headers属性RequestMapping注解的功能 从注解名称上我们…

二叉树23:验证二叉搜索树

主要是我自己刷题的一些记录过程。如果有错可以指出哦,大家一起进步。 转载代码随想录 原文链接: 代码随想录 leetcode链接:344. 反转字符串 题目: 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。…

26. 命名空间

前言:如果你接触过c/c/c#/java,那么对于python中的命名空间也是如此,只不过在些许地方存在细微差异,不过倒无伤大雅。 1. 定义 命名空间(Namespace)是从名称到对象的映射,大部分的命名空间都是通过 python 字典来实现…

lamda表达式

lamda表达式可以看作是一个匿名函数。编译器在编译的时候,会将lamda表达式处理成一个仿函数类,类名是类名是不重复的随机名称(因为一个作用域中可能存在多个仿函数),返回该仿函数的对象。 lamda既然可以看作是一个匿名…

文件操作(C语言)

目录 1、为什么使用文件 2、什么是文件 程序文件 数据文件 文件名 3、文件的打开和关闭 文件指针 文件的打开和关闭 4、文件的顺序读写 文件读写介绍 文件读写函数 fputc(字符 输出/写 函数) fgetc(字符 输入/读 函数) fputs&…

VMware Workstation安装:与 Device/Credential Guard 不兼容

VMware Workstation安装:与 Device/Credential Guard 不兼容 1、快速解决 安装最新版VMware Workstation,例如我安装的是VMware Workstation Pro 17: 是的,解决报错的办法,就是安装/升级VMware Workstation版本。 参…

Aspose.PDF 23.1.0 for .NET Crack

Aspose.PDF for .NET可以在 .NET 程序中生成、屏蔽、编辑甚至将 PDF 文件转换为多种格式,而无需依赖 Adob​​e Acrobat。它是.Net核心对PDF的创新处理,可以在跨平台软件中执行文档操作甚至任务管理。借助 API,用户可以创建、更改、呈现、保护…

Spring Cloud:网关Gateway

✨ Spring Cloud:网关Gateway微服务网关概述为什么需要微服务网关服务网关的介绍Getway基本介绍微服务架构中网关所处位置三大核心概念工作流程入门案例搭建新建模块**cloud-gateway-gateway9527**导入依赖application.yml主启动类实现动态路由测试Predicate 断言基本介绍Route…

详解信奥一本通1290:采药

1290:采药【题目描述】辰辰是个很有潜能、天资聪颖的孩子,他的梦想是称为世界上最伟大的医师。为此,他想拜附近最有威望的医师为师。医师为了判断他的资质,给他出了一个难题。医师把他带到个到处都是草药的山洞里对他说&#xff1…

Fisco Bcos区块链三(webase中间件平台一键部署)

文章目录区块链开荒技术文档:https://fisco-bcos-documentation.readthedocs.io/zh_CN/latest/index.html4. Webase一键部署Java环境变量配置MySQL安装Ubuntu安装mysql数据库安装后设置密码:Python部署PyMySQL部署(Python3.6)拉取…

SpringBoot-过滤器的使用(在访问页面时过滤掉未登录的用户使其不能访问相应页面)

目录 概述 前端编写 页面展示 后端编写 编写接口 过滤器的编写 过滤器功能实验 概述 解决需求:在用户未登录的情况下访问未登录不可访问的页面时,请求将被过滤到,将用户退回登录页面。 技术选型 前端:Vue ElementUI 后端…

MySQL事务的四大特性以及并发事务问题

事务的四大特性ACID 【原子性(Atomicity)】:事务是不可分割的最小单元,要么全部成功,要么全部失败。(eg:转账案例,转账过程中任何一步操作失败了,那么整个事务就失败了&a…

Python装饰器使用方法详解

文章目录1 装饰器背景知识1.1 基本概念1.2 应用场景2 简单的装饰器代码3 使用装饰器记录函数执行次数4 带参数的装饰器5 装饰器处理有返回值的函数1 装饰器背景知识 1.1 基本概念 装饰器(Decorator)是 Python 中一种函数或类,用来修饰其他函…

RabbitMQ部署

RabbitMQ部署1.单机部署1.1.下载镜像1.2.安装MQ1.3访问管理端2.集群部署2.1.集群分类2.2.设置网络1.单机部署 我们在Centos7虚拟机中使用Docker来安装,如未安装dockr,请参考《Centos7安装Docker》 1.1.下载镜像 方式一:在线拉取 docker …

C语言linux线程库pthread的简单使用教程

POSIX线程(pthread)库 POSIX线程库是用于C/C的基于标准的线程API。它允许产生一个新的并发流程。它在多处理器或多核系统上最为有效,在这些系统中,可以将流程安排在另一个处理器上运行,从而通过并行或分布式处理提高速…

flask框架全解

文章目录简介wsgiref安装配置文件方式一(debug方式配置)方式二(环境变量方式,很少见)方式三(配置文件方式)其他配置方式flask app路由组成写法动态路由的过滤查询字符串传参json和form等数据反向…

deepin系统如何安装惠普打印机

deepin系统如何安装惠普打印机 导读 想必现在有很多小伙伴对于deepin系统如何安装惠普打印机 安装惠普打印机的方法方面的知识都比较想要了解,那么今天小好小编就为大家… 想必现在有很多小伙伴对于deepin系统如何安装惠普p1007打印机 安装惠普打印机的方法方面的知…