zoukankan      html  css  js  c++  java
  • 数据结构(十九)二叉树的定义和性质

      一、二叉树的定义

      1.二叉树(Binary Tree)是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两颗互不相交的、分别称为根结点的左子树和右子树的二叉树组成。

      2.二叉树的特点:

    • 每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。
    • 左子树和右子树是有顺序的,次序不能任意颠倒。
    • 即使树中某结点只有一颗子树,也要区分它是左子树还是右子树。

      3.二叉树具有五种基本形态:

    • 空二叉树
    • 只有一个根结点
    • 根结点只有左子树
    • 根结点只有右子树
    • 根结点既有左子树又有右子树

      4.特殊二叉树

      (1)斜树:所有的结点都只有左子树的二叉树叫左斜树,所有结点都是只有右子树的二叉树叫右斜树。

      (2)满二叉树:所有分支结点都存在左子树和右子树,并且所有叶子都在同一层上。

      (3)对一颗具有n个结点的二叉树按层序编号,如果编号为i(1<=i<=n)的结点与同样深度的满二叉树中编号为i的结点在二叉树中的位置完全相同,则这棵二叉树称为完全二叉树。

      二、二叉树的性质(注意,这里的i都是从0开始的

      1.在二叉树的第i层上至多有2^i个结点(i从0开始)。

      2.深度为k的二叉树至多有2^k -1个结点(k从1开始)。

      3.对任何一颗二叉树T,如果其终端节点树为n0,度为2的结点数为n2,则n0 = n2 +1(设度为1的结点数为n1,则结点总数为n=n0+n1+n2;又由于除了根结点外,每一个结点均对应一个进入它的分支,所以分支总数=n-1,又由于度为1的结点对应着1个从它引出的分支,度为2的结点对应着2个从它引出的分支,所以分支总数=n1+2*n2,即n-1=n1+2*n2)。

      4.具有n个结点的完全二叉树的深度为【log2 n】+1(【x】表示不大于x的最大整数)(深度为k的满二叉树的结点数n一定是2^k -1)

      5.如果对一颗有n个结点的完全二叉树(其深度为【log2 n】+1)的结点按层序编号(从第1层到第【log2 n】+1层,每层从左到右),对任一结点i(0<=i<=n-1)有:

    • 如果i=0,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是结点【(i-1)/2】
    • 如果2i+1>n,则结点i无左孩子;否则其左孩子是结点2i+1
    • 如果2i+2>n,则结点i无右孩子;否则其右孩子是结点2i+2
  • 相关阅读:
    男子利用POS机帮人非法套现1576万余元被起诉
    套现花样很多 弄不好成了诈骗
    刀尖上的无本生意 信用卡套现投资盛行
    新三板是什么—新三板科普知识讲堂
    Android注入事件的三种方法比较
    当今最流行的Node.js应用开发框架简介
    安卓WindowManager注入事件如何跳出进程间安全限制
    伟大创意检验10要
    初创互联网公司简明创业指南
    根据Unix哲学来编写你的HTML5 Websocket服务器来实现全双工通信
  • 原文地址:https://www.cnblogs.com/BigJunOba/p/9209446.html
Copyright © 2011-2022 走看看