数据结构——二叉树的基本介绍

————————————本文旨在讨论与学习计算机知识,欢迎交流————————————

        上一章,我们讲解了树结构的综述导论,那么,现在我们来深入了解一下树结构中最常用研究的结构——二叉树结构(上一章的扩展——孩子兄弟表示法就是利用的二叉树的原理)。

以上是关于普通二叉树的基本概念,我们可以结合上一章树的概念记忆。特别的,我们需要注意:二叉树是度不超过二的树,其子树也是二叉树。

下面,我们来了解一下有关二叉树的两个重要概念:满二叉树与完全二叉树。

1、满二叉树

        满二叉树是指除了叶子结点外的每一个节点的度都是二且深度相同的树。

2、完全二叉树

        完全二叉树是指度不为二的节点只存在与倒数二、三行且叶子结点只存在于倒数一、二行的树。

介绍完满二叉树与完全二叉树的基本概念之后,我们下面要剖析它们的重要性质:

性质1:在二叉树的第i层上的结点最多为2 个。(i ≥ 1)

性质2:深度为k的二叉树至多有2 -1个结点。(i ≥ 1) 

性质3:在一棵二叉树中,叶结点的数目比度为2的结点数目多一个。

             原理:

                  

                加的1为根节点,其解释为:度为1的节点*1+度为2的节点*2+根节点。

性质4:

性质5:如果有一棵n个结点的完全二叉树,其结点编号按照层次序(从上到下,从左到右),则除根结点外,满足[i/2 , i, 2i, 2i+1](父,自身,左孩子,右孩子)的规则。

二叉树的存储:

        通常,我们摒弃顺序存储(除了少量特殊的二叉树),因为这种存储方式非常浪费空间,我们更多使用链式存储来存储数据。而对于树,链式二叉树我们也有树头,树头作为起点更新和查找树上元素,不过当前我们仍不能自由快速的查询元素,直到我们学到二叉搜索树的时候我们会再次介绍树的搜索与遍历操作。

希望能对你有所帮助!

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

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

相关文章

英伟达发布 Llama Nemotron Nano 4B:专为边缘 AI 和科研任务优化的高效开源推理模型

英伟达推出了 Llama Nem)otron Nano 4B,这是一款专为在科学任务、编程、符号运算、函数调用和指令执行方面提供强大性能与效率而设计的开源推理模型,其紧凑程度足以支持边缘部署。该模型仅包含 40 亿参数,却在内部基准测试中实现了比其他多达…

论文阅读笔记——Autoregressive Image Generation without Vector Quantization

MAR 论文 基于 VQ(向量量化)的图像生成方法具有显著优势,它通过离散化压缩将原始图像映射到有限的 codebook 空间,从而缩小学习范围、降低建模难度,同时这种离散表示更易于与自回归(AG)生成方式…

【科普】关于C 语言日志系统实战:如何同时输出到终端和文件?

1.概述 c语言没有现成的日志库,如果要记录日志,需要自己封装一个日志库。如果要实现日志级别和参数打印,还是比较麻烦的,正好在github找到了一个c语言开源日志库,可以实现日志级别打印,参数打印&#xff0…

2025,数字人借直播场景迈过“真假线”丨数智化观察

作者 | 曾响铃文 | 响铃说一夜带货超5500万GMV、观看人次1300万,罗永浩数字人在百度电商的直播首秀正在掀起新的行业浪潮——2025,数字人直播带货成功出圈,加速进入大众视野,被更多的消费者所认可。成就这场热潮的关键点之一&…

HTML表格导出为Excel文件的实现方案

1、前端javascript可通过mime类型、blob对象或专业库(如sheetjs)实现html表格导出excel,适用于中小型数据量;2、服务器端方案利用后端语言(如python的openpyxl、java的apache poi)处理复杂报表和大数据&…

企业微信iPad协议端强制拉群漏洞深度分析

正常一次最多邀请40人进群 超过40人的拉群,会变成邀请,需要对方同意 新版本修复了漏洞,但还是可以用老版本进行强制拉群 虽然官方也做了版本过低的限制,但还是有办法绕过 要么修改版本号或者登录几天新版本,之后就可以…

Python编译器(Pycharm Jupyter)

Pycharm下载不过多赘述pycharm导入anaconda创建的python环境选择想要的环境 Jupyter Jupyter 是一个开源的交互式计算环境,能够让用户将代码、文本(包括 Markdown)、可视化结果等内容整合在一个文档中,非常适合进行数据分析、科学…

漏洞修复与Fiddler抓包工具的使用

漏洞描述 1. 短信轰炸漏洞 Type:存在三个不同的值。Login是登录处,register是注册账号处的短信验证码获取值,还有一个update值。未注册的用户也可以进行发送短信。 2. 手机号绕过,修改密码漏洞(逻辑漏洞) 目前注册使用手机号与忘记密码的手机号验证测试都可以绕过, …

对象存储-OSS

目录 对象存储背景 阿里云OSS 对象存储背景 单节点环境下,文件往往存储在tomcat服务器内,随着业务需求的增多,单节点已不能满足需求,项目架构需要扩展到多节点(见下图),此时文…

C语言函数的声明

1定义:在C语言中,函数是一段具有特定功能的独立代码块,它可以接收输入参数、执行相关操作并返回结果。2为什么需要函数(1)代码复用:避免重复编写相同功能的代码, (2)模块…

AI人工智能名片小程序源码系统,名片小程序+分销商城+AI客服,包含完整搭建教程

智能名片核心功能AI人工智能名片小程序的核心功能设计旨在彻底改变传统商务交流方式,为用户提供前所未有的智能化体验。个性化名片展示是系统的基础功能,用户可以通过丰富的模板库和自定义设计工具,创建独具特色的电子名片。系统提供多种预设…

React 教程:井字棋游戏

React 教程:井字棋游戏 使用 React 实现一个交互式的井字棋游戏,并配上好看的样式 // 导入必要的CSS样式和React库 import "./App.css"; import { useState } from "react";// Square组件 - 表示棋盘上的一个格子 function Square({…

React源码2 React中的工厂函数:createRoot()

#React V18.2 源码前置基础知识:工厂函数工厂函数是一种设计模式,用于动态创建对象或函数实例。其核心思想是通过封装对象创建的细节,提供统一的接口,从而增强代码的灵活性和可维护性,有一些核心作用:解耦创…

《UE5_C++多人TPS完整教程》学习笔记42 ——《P43 瞄准(Aiming)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P43 瞄准(Aiming)》 的学习笔记,该系列教学视频为计算机工程师、程序员、游戏开发者、作家(Engineer, Programmer, Game Developer, Author) Stephen Ulibarri…

SQL Server 临时表、表变量与WITH语句的用法与区别

引言 在SQL Server数据处理中,临时表、表变量和WITH语句(CTE)是关键的中间结果集管理工具。临时表适合大数据量操作,表变量优化小数据量场景,而CTE则简化复杂查询逻辑。三者选择需综合考量数据量级、事务需求及代码可读性。本文将深入解析其工作机制,通过实测对比指导场…

【Android】组件及布局介绍

一:代码分析 1:Android界面开发方式 (1)JavaView(传统视图系统) 这是 Android 早期的开发方式,用 Java 或 Kotlin 代码配合 XML 布局文件 来构建界面。(简单了解即可) 分…

Android 音视频 IPC序列化工具-Flattenable

Android Binder与AIDL与Service使用案例及分析-CSDN博客 讲讲这个类,被用在Android音视频中,跨进程序列化反序列化用。与Binder驱动有很强的联系。位于: feameworks/native/utils/Flattenable.h Flattenable, 译为令人满意的。可能是作者十分满意自己的这些作品吧,起了这…

文献学习|全面绘制和建模水稻调控组景观揭示了复杂性状背后的调控架构。

摘要: 解析调控复杂性状的机制对于推进作物改良至关重要。在此,我们提出了一个全面的水稻(Oryza sativa)调控组图谱,涵盖了来自三个代表性品种的23种不同组织的染色质可及性。我们的研究揭示了117,176个独特的开放染色…

Linux的压缩与解压缩

一、使用tar命令进行打包与解包 1.0、tar命令简介和常用选项 tar命令是Linux中经常使用的归档工具,它的主要功能是【对文件或者目录进行打包归档】,归档为一个文件,但是并不进行压缩;tar命令的归档操作效果如下: tar命…

OpenCV+OCR实现弧形文字识别

以下是基于OpenCV与OCR实现弧形文字识别的完整技术方案,结合了图像预处理、几何变换与OCR引擎调用等关键步骤,并提供优化技巧:🔍 一、技术原理弧形文字识别的核心在于​​将弯曲文本转换为水平直线​​,便于OCR引擎处理…