二叉树的5个性质【要点:完全二叉树的性质】

news/2024/12/1 0:23:02/

只讲不会的

普通二叉树就要讲排列顺序了!!!

预备:满二叉树:1.前提是它必须是二叉树        2.每个结点(除了终端结点外)都是2个子女。

要点1:关于普通的的结点的计算,请牢记:1.每一层最多有(2的k-1次方)个结点。【看到最多请以满二叉树举例】        2.二叉树最多有(2的k次方)-1个结点

要点2:若n为总结点个数,n【+下标】(下标表示子结点个数),则有n0=n2+1

{证明

 

 现在设B表示二叉树里面边的个数,当从上往下看的时候,除了根结点之外的每个结点都对应一条边,所以B=n-1,从下往上看的时候,n2下面跟2条边,n1下面跟一条边,所以B=2*n2+n1;与n=n0+n1+n2联立后(总结点n数等于所有子结点数(n0+n1+n2)之和),即得n0=n2+1;

}

现在是关于特殊二叉树的相关计算:(满二叉树与完全二叉树)

满二叉树:每个父母都有小孩(狗头)

课本定义:深度为k,且只含有(2的k次方)-1个结点的树==>二叉树的结点数固定(在边已知的情况下)

完全二叉树:

课本定义:深度为k,有n个结点的二叉树,当且仅当每一个结点都与深度为k的满二叉树的编号一一对应时,称为完全二叉树。

理解:像满二叉树一样排列,但是不放满。

由此可知完全二叉树的特点:1.叶子在最后两层出现        2.右子树的层数为k时,左子树为k或k+1

{在深度思考一下,满二叉树结点数(2的k次方-1)一定是奇数,完全二叉树与满二叉树的排列相同,只是n1(度为1的结点)结点数只能为0或1【因为结点可以不放满】,所以当完全二叉树为奇数时n1=0,代表它与满二叉树相似;同理,完全二叉树为偶数时,n1=1,相当于最后有了一个结点}

完全二叉树的性质(3+2个):

第4个:具有n个结点的完全二叉树的深度k为 |  log以2为底n的对数  |+1,证明:n的数量在满二叉树的最后一层到前一层之间(即:2的k-1次方-1<= n <2的k次方-1),等效于2的k-1 到 2的k次方,再同时取对(log)就是  log以2为底n的对数 ,在k-1到k之间,而k是整数,所以log 2  n==k-1

》k=| log 2 n |+1

第五个:(建议画一个有12个结点的完全二叉树)

 

假设 结点i  

它父母的结点数==floor(i/2);  [floor表示向下(小)取整]

当 2*i>n时(叶子结点),该结点无子结点,此外,左结点为2*i(eg:i==4)。

当2*i+1>n时,结点无右孩子,否则右孩子为2*i+1(eg:i==6).


http://www.ppmy.cn/news/39062.html

相关文章

Transformer 笔记目录

一、介绍 导论&#xff1a;Transformer 背景介绍&#xff0c;Transformer 能胜任的任务介绍。相关知识&#xff1a;深度学习基础&#xff08;神经网络&#xff0c;回归&#xff0c;分类&#xff0c;优化&#xff0c;激活函数等&#xff09;&#xff0c;具体介绍序列到序列模型…

[linux]基础IO

文章目录基础IO1. 重新谈论文件1.1 准备工作1.1.1 提出问题1.1.2 达成共识1.2 回忆C语言文件操作1.2.1 写文件辨析fprintfsnprintf1.2.2 读文件1.2.3 向文件追加1.3 文件操作的系统调用1.3.1 OS接口open的介绍(比特位标记)1.3.2 写入操作1.3.3 追加操作1.3.4 只读操作1.4 回答问…

Spring 6 IOC容器加载过程与核心方法refresh源码浅析

前言&#xff1a;本篇只对主线核心逻辑进行梳理分析&#xff0c;本篇以AnnotationConfigApplicationContext容器为例进行切入分析【Spring版本为: v6.0.2】 一、实例化容器AnnotationConfigApplicationContext 我们启动容器的时候&#xff0c;虽然只是new了一个AnnotationConf…

gpt训练数据-网页版chat软件

gpt-3 中文 api 目前&#xff0c;OpenAI官方并没有针对GPT-3的中文API&#xff0c;但是有一些第三方机构或者开发者提供了自己的中文API接口&#xff0c;可以使用GPT-3模型进行中文文本生成&#xff0c;利用这些API可以简单地进行中文文本生成等任务&#xff0c;尤其是对于不擅…

数据库总结/个人总结

目录数据库数据和信息Data数据数据库数据库管理系统总结常见的数据库管理系统关系型数据库连接查询交叉连接、笛卡尔积内连接左连接右连接嵌套查询Jar在Java项目中使用.jar文件JDBC核心接口单表查询SQL注入简化JDBC视图View创建视图使用视图删除视图事务transaction事务的特性A…

【源码】手麻系统源码,C#手术麻醉系统源码

手术室麻醉信息管理系统源码&#xff0c;手麻系统源码&#xff0c;C#手术麻醉系统源码 相关技术&#xff1a;C#语言前端框架&#xff1a;Winform后端框架&#xff1a;WCF数据库&#xff1a;sqlserver开发工具:VS2019 文末获取联系&#xff01; 系统概述&#xff1a; 手术麻醉…

aspnet030高校学生团体管理系统sqlserver

net030高校学生团体管理系统 . 1.用户基本信息管理模块&#xff1a;录入、修改、删除、查询、统计、打印等功能 2.学生成绩管理模块&#xff1a;录入、修改、删除、查询、统计、打印等功能 3.学生团体信息管理模块&#xff1a;录入、修改、删除、查询、统计、打印等功能 4.教…

〖Python网络爬虫实战⑤〗- Session和Cookie介绍

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 说明&#xff1a;本专栏持续更新中&#xff0c;目前专栏免费订阅&#xff0c;在转为付费专栏前订阅本专栏的&#xff0c;可以免费订阅付费…