【数据结构】二叉树性质及遍历

本文详细介绍了二叉树的概念,包括满二叉树和完全二叉树的定义,以及二叉树的创建。重点讲解了二叉树的性质,如层序遍历、先序遍历、中序遍历、后序遍历,并提供了计算二叉树节点个数、叶子节点个数、第k层节点个数和二叉树高度的方法。同时,阐述了在二叉树中查找特定元素的思路。
摘要由CSDN通过智能技术生成

一、二叉树

1.二叉树概念
  1. 每个结点最多有两棵子树,即二叉树不存在度大于 2 的结点。
    2.左右子树是有顺序的,不能颠倒
2.两种特殊二叉树

满二叉树: 一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就
是说,如果一个二叉树的层数为K,且结点总数是
2^k-1,则它就是满二叉树

完全二叉树: 完全二叉树是由满二叉树而引出来的。对于深度为K的,有n个结点的二叉树,当且仅当其每一个结点都深度为K的满二叉树中编号从1至n的结点
一一对应时称之为完全二叉树。满二叉树是一种特殊的完全二叉树。

在这里插入图片描述

3.二叉树的创建

用左右结点来代表二叉树

//创建一个二叉树
class Node{
   
    public Node(String  val) {
   
        this.val = val;
    }

    String val;
    Node leftNode;
    Node  rightNode;
}
 //创建一个树(手动写死的方式)
    public static Node createBinaryTree(){
   
        Node a=new Node("A");
        Node b=new Node("B");
        Node c=new Node("C");
        Node d=new Node("D");
        Node e=new Node("E");
        Node f=new Node("F");
        Node g=new Node("G");
        a.leftNode=b;
        a.rightNode=c;
        b.leftNode=d;
        b.rightNode=e;
        e.leftNode=g;
        c.rightNode=f;
        return  a;

    }

二、二叉树的性质

  1. 若规定根节点的层数为1,则一棵非空二叉树的第i层上最多有 2 i − 1 2^{i-1} 2i1(i>0)个结点
  2. 若规定只有根节点的二叉树的深度为1,则深度为K的二叉树的最大结点数是 2 k − 1 2^k-1 2k1(k>=0)
  3. 对任何一棵二叉树, 如果其叶结点个数为 n0, 度为2的非叶结点个数为 n2,则有n0=n2+1
  4. 具有n个结点的完全二叉树的深度k为 l o
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值