树与二叉树堆:二叉树

二叉树的概念:

二叉树是树的一种,二叉树是一个节点,最多只有两个子节点,二叉树是一个特殊的树二叉树的度最大为2

从上图可得一棵二叉树是结点的一个有限集合,该集合:

  1. 或者为空
  2. 由一个根结点加上两棵别称为左子树和右子树的二叉树组成

 二叉树的分类:

  • 二叉树分为完全二叉树和满二叉树。

满二叉树:

在二叉树的基础上,在规定的层数中,每一层都保持了最大的度,或者说每一层都是排满了结点。

                     

  • 如上图所示,在满二叉树中,结点的个数和二叉树的高度是一个等差数列的关系。 

 完全二叉树:

 满二叉树的演变如果是H的层数,那么H-1层是满的,而最后一层不一定是满的,如下图所示。

                                  

错误案例:

 

完全二叉树的高度和结点关系:

  • 由于完全二叉树的最后一层是不确定的,所以完全二叉树的结点个数其实是一个动态区间关系
  • 而假设完全二叉树的高度是h,那么h-1层的结点个数和满二叉树的结点个数算法一致
  • 而最后一层的结点个数根据推论是在1到 2^(h-1)之间
  • 所以完全二叉树的结点个数和高度关系是:[:2^(h-1), 2^h-1]
  • 完全二叉树的结点个数也是[:2^(h-1), 2^h-1]

二叉树的存储方式:

数组存储: 

                                                    

如图所示,数组存储是一层一层的进行存储,先左后右先上后下,而数组存储只能适用于满二叉树。 

如果存储到数组中,怎么找到孩子结点对于的下标呢?

  •  左孩子结点的下标 = 父亲结点的下标  *  2 +1  ,右孩子结点下标 = 父亲结点的下标  *  2 +2

知道孩子怎么算父亲节点下标?

  • (孩子结点的下标-1 ) /   2 

未完待续........................................... 


 

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

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

相关文章

【c++】前缀和教程

今天来讲前缀和 前缀和是什么? 我们先来看一个问题: 读入n和m,读入n个数,接下来m行,每行读入两个数a和b,输出第a个数加到第b个数 输入样例: 5 1 2 3 4 5 2 1 2 3 5 输出样例&#xff1…

P2 C++变量

前言 一 C变量的作用 本期我们来讨论一下c 中的变量。 在一个 C 程序中,大部分内容实际上都是在使用数据。我们操作任何类型的数据,如包括我们想要改变、想要修改, 想要读和写数据。我们都需要把数据存储进叫做变量的东西里面。变量允许我们…

SQL Server Count()函数

SQL Server Count()函数 SQL Server COUNT() 是一个聚合函数,它返回在集合中找到的项目数。 COUNT() 函数语法: COUNT([ALL | DISTINCT ] expression)ALL 指示COUNT() 函数应用于所有值。ALL是默认值。返回非NULL值的数量(包括重复值&…

电子科技大学 分布式系统 期末复习笔记

第一章 为什么需要分布式系统:功能分离,固有的分布性,负载均衡,可靠性,经济性。 定义:分布式系统是这样一种系统,其中位于联网计算机上的组件仅通过传递消息来通信和协调它们的操作。 特点&am…

多模态大一统:通向全模态学习和通用人工智能的未来之路

随着AI技术的不断发展,研究者们正试图构建一种真正通用的人工智能,它能像人们那样以统一的方式处理和理解多种模态的信息。多模态大一统是这一愿景的关键,它旨在开启全模态LLM(深度学习语言模型)和通用AI时代的大门。在…

【ctfshow】web入门-信息搜集-web11~20

【ctfshow】web入门-信息搜集-web11~17 web11_域名其实也可以隐藏信息,比如flag.ctfshow.com 就隐藏了一条信息web12_有时候网站上的公开信息,就是管理员常用密码web13_技术文档里面不要出现敏感信息,部署到生产环境后及时修改默认密码web14_…

异行星低代码平台--第三方插件对接:钉钉平台对接(一)

异行星低代码平台可以集成钉钉,实现单点登录、消息推送和组织机构同步。 提示 此功能需要企业版授权才能使用。 钉钉集成​ 单点登录 异行星低代码平台集成到钉钉后,只要使用钉钉账户登录钉钉客户端,即可在钉钉中直接使用管理后台&#…

【漏洞复现】IP-guard WebServer 存在远程命令执行漏洞

漏洞描述 IP-guard是由溢信科技股份有限公司开发的一款终端安全管理软件,旨在帮助企业保护终端设备安全、数据安全、管理网络使用和简化IT系统管理。 免责声明 技术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危…

【C++】map multimap

文章目录 1.map介绍2.map的使用3.multimap介绍4.multimap的使用 1.map介绍 map的文档 翻译: map是关联容器,它按照特定的次序(按照key来比较)存储由键值key和值value组合而成的元素。 在map中,键值key通常用于排序和惟一地标识元素&#x…

Arthas查看数据库durid数据源情况

1、下载arthas curl -O https://arthas.aliyun.com/arthas-boot.jar 2、启动arthas java -jar arthas-boot.jar 3、查看数据库连接池配置 vmtool --action getInstances --className com.alibaba.druid.pool.DruidDataSource --express instances.{? #this.dbTypeName&qu…

动态时钟实现

前端HTMLCSS3JavaScript实现动态时钟 一、实现思路概述二、源代码(包含HTML、CSS、JS)三、图片资源与效果截图1. 图片资源2. 效果截图 一、实现思路概述 1. 通过HTML搭建基本时钟的页面结构(这里将时钟图片资源作为背景图)2. 将时钟背景和时/分/秒图片进行CSS位置居…

京东数据分析(京东数据采集):2023年10月京东平板电视行业品牌销售排行榜

鲸参谋监测的京东平台10月份平板电视市场销售数据已出炉! 根据鲸参谋电商数据分析平台的相关数据显示,10月份,京东平台上平板电视的销量将近77万,环比增长约23%,同比则下降约30%;销售额为21亿,环…

Spring-IOC-FactoryBean机制(难点且重点)

1、第一个案例 1.1、Book.java package com.atguigu.ioc; import lombok.Data; Data public class Book {private String bid;private String bname; }1.2、Book2.java package com.atguigu.ioc; import lombok.Data; Data public class Book2 extends Book {private String co…

软件测试银行面试项目经验讲解

前言 业务: 银行类app具体模块业务讲解: 掌上生活(消费/理财) 消费: 与电商平台业务类似 饭票:GPS定位城市服务、饭票购买消费、餐厅查询、代金券、周三五折、banner图、我的饭票、我的抵扣券 影票 …

VSCODE 打开多个文件夹

1.打开vscode编辑器之后如果之前使用过,就会默认加载上次打开的文件以及文件夹。所以这个时候只需要点击顶部菜单栏之中的文件菜单项,然后点击将文件夹添加到工作区这个选项。 2.点击之后会打开一个文件夹目录,接着只需要在里面选择一个具有…

最新绿豆APP源码苹果CMS影视插件版本/原生JAVA源码+反编译开源+免授权

源码简介: 最新绿豆APP源码苹果CMS影视插件版本,它是原生JAVA源码反编译开源免授权,绿豆影视对接苹果CMS,它可以支持多功能自定义DIY页面布局。 1、新版绿豆视频APP视频6.1插件版反编译指南及教程 2、后端插件开源,可…

[C++] STL_stack queue接口的模拟实现

文章目录 1、stack1.1 stack的介绍1.2.1 stack的构造1.2.2 进、出栈等接口的模拟实现 2、queue2.1 queue的介绍2.2 queue的使用2.2.1 queue构造2.2.2 入、出队等接口的模拟实现 1、stack 1.1 stack的介绍 stack的文档介绍 1. stack是一种容器适配器,专门用在具有…

JS——日期字符串yyyymmdd转yyyy-mm-dd的两种方法

方法一:正则表达式 1、年月日转换 var oldDate "20111220"; var newDate oldDate.replace(/^(\d{4})(\d{2})(\d{2})$/, "$1-$2-$3"); console.log(newDate );//2011-12-20 2、年月日时分秒转换 var oldDate "20111220101010"…

数字化转型导师坚鹏:数字化时代银行网点厅堂营销5大痛点分析

数字化时代银行网点厅堂营销存在以下5大痛点: 1、业务办理时间较长。目前很多银行业务办理时间仍然较长,可能的原因包括银行业务办理流程比较复杂、柜员操作技能不够熟练、银行系统的稳定性欠佳、网点某段时间客户比较多等。 2、现场提交材料太多。银行…

Java设计原则和设计模式

目录 第一部分:设计原则 单一职责原则 (Single Responsibility Principle)开闭原则 (Open-Closed Principle)里氏替换原则 (Liskov Substitution Principle)接口隔离原则 (Interface Segregation Principle)依赖倒置原则 (Dependency Inversion Principle)合成/聚…