二叉树的学习

本文详细介绍了二叉树的概念,包括其定义、主要性质,如层节点数量、完全二叉树的特性等,并探讨了二叉树的不同类型,如满二叉树和完全二叉树。此外,还提供了二叉树的Java代码实现,展示了节点结构及其初始化方法。
摘要由CSDN通过智能技术生成

一、二叉树的定义

二叉树(binary tree)是树的一种特殊形式。二叉,顾名思义,这种树的每个节点最多有2个孩子节点。注意,这里是最多有2个,也可能只有1个,或者没有孩子节点。
在这里插入图片描述

二、二叉树的性质

2.1 性质1:

二叉树第i层上的结点数目最多为 2i-1 (i≥1) 。

2.2 性质2:

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

2.3 性质3:

在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1。

2.4 性质4:

在完全二叉树中,具有n个节点的完全二叉树的深度为[log2n]+1,其中[x]是向下取整。

2.5 性质5:

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

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

三、二叉树分类

  • 二叉树:
    每个结点最多有两棵子树且左右子树的顺序不能调换
  • 满二叉树:
    如果二叉树中任意一个结点,或者是叶结点,或者有两棵非空子树,且叶结点都集中在二叉树最下面一层
  • 完全二叉树:
    若二叉树最多只有最下面两层结点的度可以小于2,且最下面一层结点都依次排列在该层最左边的位置

在这里插入图片描述

四、二叉树的代码实现

// 定义一棵二叉树
public class TreeNode {
	// 定义节点的值
	int val;
	// 定义左子树
	TreeNode left;
	// 定义右子树
	TreeNode right;
	// 定义初始化方法
	TreeNode(int x) { val = x; }
 }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值