【数据结构】二叉树
完全二叉树
是指所有结点度数
小于等于2的树
所以这种情况也是:

几条性质
- 一个具有n个结点的
完全二叉树的深度为: log 2 ( n + 1 ) 的结果向上取整。 \\\log_{2}(n+1) \ \ 的结果向上取整。 log2(n+1) 的结果向上取整。 - 设度为0的结点个数是n0,度为1的结点个数是n1,度为2的结点个数是n2,那么n0 = n2 + 1。
推导:一棵树的所有结点个数为n0+n1+n2 —> 这棵树的边有n0+n1+n2 -1 条
这棵树的边数同时也等于n1+2*n2(度为0的能提供0条边,1的提供1条边,2的提供2条边)
那么n0+n1+n2 -1 = n1+2 *n2
可得 n0 = n2 + 1
证毕。
- 度数之和等于边数的二倍(握手定理)
- 树中结点与边的关系为结点数-边数=1
- 高度为h的二叉树至多有2h-1个结点(满二叉树)
利用等比数列求和公式算得:
将各层结点个数加起来即可。
遍历方式
以这棵树为例:
前序
所有子树按照 根左右的方式进行遍历
A B D NULL NULL E NULL NULL C F NULL NULL NULL
中序
所有子树按照 左根右 的方式进行遍历
NULL D NULL B NULL E NULL A NULL F NULL C NULL
后序
所有子树按照 左右根 的方式进行遍历
NULL NULL D NULL NULL E B NULL NULL F NULL C A
层序
所有子树按照 从上到下 从左到右 的方式进行遍历
ABCDEF
相关文章:
【数据结构】二叉树
完全二叉树 是指所有结点度数小于等于2的树 所以这种情况也是: 几条性质 一个具有n个结点的完全二叉树的深度为: log 2 ( n 1 ) 的结果向上取整。 \\\log_{2}(n1) \ \ 的结果向上取整。 log2(n1) 的结果向上取整。设度为0的结点个数是n0&#…...
基于灰狼优化(GWO)、帝国竞争算法(ICA)和粒子群优化(PSO)对梯度下降法训练的神经网络的权值进行了改进(Matlab代码实现)
💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…...
jenkins自动化构建保姆级教程(持续更新中)
1.安装 1.1版本说明 访问jenkins官网 https://www.jenkins.io/,进入到首页 点击【Download】按钮进入到jenkins下载界面 左侧显示的是最新的长期支持版本,右侧显示的是最新的可测试版本(可能不稳定),建议使用最新的…...
HTTPS 的加密流程
目录 一、HTTPS是什么? 二、为什么要加密 三、"加密" 是什么 四、HTTPS 的工作过程 1.对称加密 2.非对称加密 3.中间人攻击 4.证书 总结 一、HTTPS是什么? HTTPS (Hyper Text Transfer Protocol Secure) 是基于 HTTP 协议之上的安全协议&…...
Jmeter 参数化的几种方法
目录 配置元件-用户自定义变量 前置处理器-用户参数 配置元件-CSV Data Set Config Tools-函数助手 配置元件-用户自定义变量 可在测试计划、线程组、HTTP请求下创建用户定义的变量 全局变量,可以跨线程组调用 jmeter执行的时候,只获取一次࿰…...
剑指Offer45.把数组排成最小的数 C++
1、题目描述 输入一个非负整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: “102” 示例 2: 输入: [3,30,34,5,9] 输出: “3033459” 2、VS2019上运行 先转换成字符串再组合起来 #in…...
【java毕业设计】基于SSM+MySql的人才公寓管理系统设计与实现(程序源码)--人才公寓管理系统
基于SSMMySql的人才公寓管理系统设计与实现(程序源码毕业论文) 大家好,今天给大家介绍基于SSMMySql的人才公寓管理系统设计与实现,本论文只截取部分文章重点,文章末尾附有本毕业设计完整源码及论文的获取方式。更多毕业…...
golang操作excel的高性能库——excelize/v2
目录 介绍文档与源码安装快速开始创建 Excel 文档读取 Excel 文档打开数据流流式写入 [相关 Excel 开源类库性能对比](https://xuri.me/excelize/zh-hans/performance.html) 介绍 Excelize是一个纯Go编写的库,提供了一组功能,允许你向XLAM / XLSM / XLS…...
学习51单片机怎么开始?
学习的过程不总是先打好基础,然后再盖上层建筑,尤其是实践性的、工程性很强的东西。如果你一定要先全面打好基础,再学习单片机,我觉得你一定学不好,因为你的基础永远打不好,因为基础太庞大了,基…...
[.NET学习笔记] -.NET6.0项目动态加载netstandard2.0报错但项目添加引用则正常的问题
问题描述 .NET6.0的项目使用netstandard2.0版本的动态链接库。若是在项目中直接添加引用,应用netstandard2.0项目或者netstandard2.0编译后的dll均能正常工作。但如果通过xcopy等方式,额外将对应的dll复制到执行目录,会执行失败。调用方式一…...
山景DSP芯片可烧录AP8224C2音频处理器方案
AP8224C2高性能32位音频应用处理器AP82系列音频处理器是面向音频应用领域设计的新一代SoC平台产品,适用于传统音响系统、新兴的蓝牙或Wifi 无线音频产品、Sound Bar 和调音台等市场。该处理器在总体架构和系统组成上,充分考虑了音频领域的特点࿰…...
来聊聊托管服务提供商(MSP)安全
纵观各个中小型企业,由于预算十分有限而且系统环境的满载,如今它们往往需要依赖托管服务提供商(managed service providers,MSP)来支持其IT服务与流程。而由于MSP提供的解决方案可以与客户端基础设施相集成,…...
最新版本的Anaconda环境配置、Cuda、cuDNN以及pytorch环境一键式配置流程
本教程是最新的深度学习入门环境配置教程,跟着本教程可以帮你解决入门深度学习之前的环境配置问题。同时,本教程拒绝琐碎,大部分以图例形式进行教程。这里我们安装的都是最新版本~ 文章目录 一、Anaconda的安装1.1 下载1.2 安装1.3 环境配置…...
【数据结构与算法】十大经典排序算法-选择排序
🌟个人博客:www.hellocode.top 🏰Java知识导航:Java-Navigate 🔥CSDN:HelloCode. 🌞知乎:HelloCode 🌴掘金:HelloCode ⚡如有问题,欢迎指正&#…...
【Spring专题】Spring之Bean的生命周期源码解析——阶段一(扫描生成BeanDefinition)
目录 前言阅读准备阅读指引阅读建议 课程内容一、生成BeanDefinition1.1 简单回顾*1.2 概念回顾1.3 核心方法讲解 二、方法讲解2.1 ClassPathBeanDefinitionScanner#scan2.2 ClassPathBeanDefinitionScanner#doScan2.3 ClassPathScanningCandidateComponentProvider#findCandid…...
【C#】判断打印机共享状态
打印机共享状态 /// <summary>/// 打印机共享状态/// </summary>public enum PrinterShareState{/// <summary>/// 无打印机/// </summary>None -1,/// <summary>/// 未共享/// </summary>NotShare 0,/// <summary>/// 已共享/// …...
运维监控学习笔记7
Zabbix的安装: 1、基础环境准备: 安装zabbix的yum源,阿里的yum源提供了zabbix3.0。 rpm -ivh http://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-release-3.0-1.el7.noarch.rpm 这个文件就是生成了一个zabbix.repo 2、安…...
【业务功能篇64】maven加速 配置settings.xml文件 镜像
maven加速 添加阿里镜像仓 <?xml version"1.0" encoding"UTF-8"?><!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additi…...
Spring Boot(六十四):SpringBoot集成Gzip压缩数据
1 实现思路 2 实现 2.1 创建springboot项目 2.2 编写一个接口,功能很简单就是传入一个Json对象并返回 package com.example.demo.controller;import com.example.demo.entity.Advertising; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.springframewo…...
Mac安装opencv后无法导入cv2的解决方法
前提条件:以下两个插件安装成功 pip install opencv-python pip install --user opencv-contrib-python 注:直接用pip install opencv-contrib-python如果报错,就加上“–user" 第一步: 设置–添加python解释器 第二步&am…...
收藏!小白程序员必看:如何抓住AI大模型时代红利?从入门到高薪就业全解析!
脉脉《2026春招职场洞察报告》显示,AI岗位量同比暴增8.7倍,AI科学家/负责人月薪破10万元,成为高薪职业断层领先者。新经济行业高薪岗位TOP20中,AI占据多数。字节跳动、大疆等大厂吸纳就业力强。文章建议考生关注AI相关新专业&…...
深入STM32F103定时器:用TIM2输入捕获精准测量脉冲宽度与频率
深入STM32F103定时器:用TIM2输入捕获精准测量脉冲宽度与频率 在嵌入式开发中,精确测量外部信号的脉冲宽度和频率是一项常见但极具挑战性的任务。无论是工业控制中的旋转编码器、消费电子中的红外遥控信号,还是无人机领域的PPM控制信号&#x…...
vscode过滤文件
const fs require(fs); const { exec } require(child_process);// 在这里输入你的关键词,每行一个 const keywordsStr BV1wmXwBCEsZ BV1MR6wBREhY BV1DuoSYuEpX ; // // 将多行字符串按换行符分割,过滤掉空行 const keywords keywordsStr.trim()…...
百考通AI让开题报告成为研究助力,而非负担
开题报告是毕业论文或学位研究的“第一块基石”,它不仅决定你的选题能否通过,更直接影响后续研究的深度、逻辑与可行性。然而,许多学生在撰写时常常陷入困境:问题意识模糊、文献综述堆砌无主线、研究方法描述空泛、结构松散不规范…...
STM32F103移植FreeRTOS实战:从零构建多任务系统
1. 项目概述:为什么要在STM32F103上跑RTOS? 如果你玩过一阵子STM32,特别是经典的“蓝桥杯”神板——STM32F103C8T6,那你大概率已经习惯了在 main 函数里写一个 while(1) 大循环,里面塞满了各种 HAL_Delay 和状态…...
CANN/asnumpy-docs 架构设计
Architecture 【免费下载链接】asnumpy-docs 项目地址: https://gitcode.com/cann/asnumpy-docs This document describes the internal architecture of AsNumpy, including the three-layer design, the core NPUArray data structure, the API module layout, and t…...
大模型时代,小白程序员如何抓住机遇?阿里高薪Offer背后的大模型学习指南(收藏版)
文章主要介绍了阿里在大模型领域的强势发展,包括高薪Offer和招聘趋势,强调了AI技能的重要性。作者建议小白和程序员学习大模型技术,并推荐了“派聪明RAG项目”作为学习资源。同时,文章还探讨了AI工具的实际应用和挑战,…...
okbiye 实测:本科生如何用 AI 搞定毕业论文全流程,从选题到格式一步到位
okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPT毕业论文 - Okbiye智能写作https://www.okbiye.com/ai/bylw 引言:当本科论文撞上 “时间焦虑”,你需要的不是 “文字裁缝” 凌晨三点的宿舍,电脑屏幕的蓝光映着你通…...
帮孩子建立时间观念:从认识“十分钟有多长”开始
很多家长都遇到过这样的困扰:让孩子“再玩十分钟就吃饭”,结果十分钟后他完全没反应,不是故意拖延,而是他真的不知道十分钟有多长。时间对孩子来说是抽象的,看不见摸不着。要帮孩子建立时间观念,不妨从感受…...
终极指南:SSDD数据集在SAR舰船检测中的完整应用方案
终极指南:SSDD数据集在SAR舰船检测中的完整应用方案 【免费下载链接】Official-SSDD SAR Ship Detection Dataset (SSDD): Official Release and Comprehensive Data Analysis 项目地址: https://gitcode.com/gh_mirrors/of/Official-SSDD SSDD(S…...

