首页 > 编程语言 >【数据结构与算法】二叉树的性质 详解

【数据结构与算法】二叉树的性质 详解

时间:2024-06-20 16:59:25浏览次数:25  
标签:结点 链域 节点 链表 详解 二叉树 数据结构 2i

在二叉树的第i层上至多有多少个结点。

在二叉树的第 i 层上至多有 2 i − 1 2^{i-1} 2i−1 个结点(i≥1)。

深度为 K的二叉树至多有多少个结点。

深度为 k 的二叉树上至多含 2 k − 1 2^k - 1 2k−1 个结点(k≥1)。

在一颗二叉树中, 其叶子结点数n0和度为二的结点数n2之间的关系。

对任何一棵二叉树T,若它含有n0 个叶子结点、n2 个度为 2 的结点,则必存在关系式: n 0 = n 2 + 1 n0 = n2 + 1 n0=n2+1。

有n个结点的完全二叉树的深度。

具有 n 个结点的完全二叉树的深度为 ⌊ log ⁡ 2 n ⌋ + 1 \lfloor \log_2 n \rfloor + 1 ⌊log2​n⌋+1 或 ⌈ log ⁡ 2 ( n + 1 ) ⌉ \lceil \log_2 (n+1) \rceil ⌈log2​(n+1)⌉。

在二叉树的顺序存贮结构中如何求结点的双亲、孩子?

若对含 n n n 个结点的完全二叉树从上到下且从左至右进行 1 1 1 至 n n n 的编号,则对完全二叉树中任意一个编号为 i i i 的结点:

  1. 若 i = 1 i=1 i=1,则该结点是二叉树的根,无双亲;否则,编号为 ⌊ i / 2 ⌋ \lfloor i/2 \rfloor ⌊i/2⌋ 的结点为其双亲结点;
  2. 若 2 i > n 2i > n 2i>n,则该结点无左孩子,否则,编号为 2 i 2i 2i 的结点为其左孩子结点;
  3. 若 2 i + 1 > n 2i+1 > n 2i+1>n,则该结点无右孩子结点,否则,编号为 2 i + 1 2i+1 2i+1 的结点为其右孩子结点。

有n个结点的二叉树用二叉链表存贮时有多少个空链域。

使用二叉链表存储时,每个节点有两个链域(左孩子和右孩子)。在完全二叉树中,叶子节点的数量比非叶子节点的数量多1,所以空链域的数量是n+1。

用三叉链表存贮时有多少个空链域。

使用三叉链表存储时,每个节点有三个链域(左孩子、右孩子和父节点)。除了二叉链表的空链域之外,还有一个根节点的父节点链域是空的,所以空链域的数量是n+2。

标签:结点,链域,节点,链表,详解,二叉树,数据结构,2i
From: https://blog.csdn.net/qq_34988204/article/details/139781235

相关文章

  • 【数据结构与算法】树,二叉树 详解
    给出树的不同的几种表示形式。邻接矩阵:这是一种二维数组,其中的元素表示两个节点之间是否存在边。这种表示形式适用于稠密图,但对于稀疏图可能会浪费很多空间。邻接表:这是一种数组和链表的组合结构。数组的每个元素都是一个链表,链表中的元素表示与该节点相连的其他节点。这种......
  • 详解Web应用安全系列(1)注入漏洞之SQL注入
    注入漏洞通常是指在可输入参数的地方,通过构造恶意代码,进而威胁应用安全和数据库安全。常见的注入漏洞包括:SQL注入和XSS跨站脚本攻击。这篇文章我们主要讲SQL注入,SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查......
  • Python 基础详解:入门宝典(3)
    容器类型介绍:1.列表(List)列表是Python中最常用的数据结构之一,它是一个有序的可变序列,允许存储任意类型的元素。列表用方括号[]表示。特点有序:元素按照插入顺序排列。可变:可以修改元素的值或增加、删除元素。支持重复:可以包含重复的元素。#创建一个列表fruits=['a......
  • 只狼风灵月影修改器操作详解:提升游戏体验的全面教程
     《只狼:影逝二度》是一款由FromSoftware开发,动视发行的动作冒险游戏,设定在日本战国时代,玩家扮演一名忍者,面对残酷的战斗与挑战,在死亡与重生的循环中,拯救被绑架的领主,揭示背后的神秘故事。以其高强度的战斗系统、精妙的关卡设计和深刻的叙事而著称,强调精准时机的格挡与反击机制......
  • 详解Kubernetes Pod优雅退出
    1、概述Pod优雅关闭是指在Kubernetes中,当Pod因为某种原因(如版本更新、资源不足、故障等)需要被终止时,Kubernetes不会立即强制关闭Pod,而是首先尝试以一种“优雅”的方式关闭Pod。这个过程允许Pod中的容器有足够的时间来响应终止信号(默认为SIGTERM),并在终止前完成必要的清理工作,......
  • Leedcode【222】. 完全二叉树的节点个数——Java解法(递归)
    Problem: 222.完全二叉树的节点个数题目思路解题方法复杂度Code效果题目给你一棵完全二叉树的根节点root,求出该树的节点个数。完全二叉树的定义如下:在完全二叉树中,除了最底层节点可能没填满外,其余每层节点数都达到最大值,并且最下面一层的节点都集中在该层最左边的......
  • Docker配置与使用详解
    一、引言随着云计算和微服务的兴起,Docker作为一种轻量级的容器化技术,越来越受到开发者和运维人员的青睐。Docker通过容器化的方式,将应用程序及其依赖项打包成一个可移植的镜像,从而实现了应用程序的快速部署和扩展。本文将详细介绍Docker的配置与使用,包括Docker的安装、镜像......
  • 【windows|007】DHCP服务详解
    ......
  • 代码随想录刷题记录(11)| 二叉树(二叉树理论基础,二叉树的递归遍历,迭代遍历,统一迭代,层序遍
    目录(一)二叉树理论基础1.种类2.存储方式3.遍历方式4.二叉树的定义 (二)二叉树的递归遍历1.思路2.递归遍历(1)前序遍历(2)中序遍历(3)后序遍历(三)二叉树的迭代遍历1.思路2.迭代遍历 (1)前序(2)中序(3)后序(四)二叉树的统一迭代(五)二叉树的层序遍历1.思路2.层序遍......
  • 数据结构_栈和队列
    目录一、栈1.1 栈的使用1.2模拟实现栈二、队列2.1 队列的使用2.2 环形队列2.3 双端队列总结一、栈栈是只允许在固定的一端进行元素的插入和删除操作的一种特殊线性表。其中进行元素的插入和删除操作的一端称为栈顶,另一端称为栈底。栈遵循先进后出(后进先出) ......