当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年计算机二级公共基础知识辅导笔记(6)
发布时间:2011/3/18 11:11:36 来源:城市学习网 编辑:ziteng
  1.6 二叉树

  1.6.1 二叉树概念及其基本性质

  1. 二叉树及其基本概念

  二叉树是一种很有用的非线性结构,具有以下两个特点:

  ① 非空二叉树只有一个根结点;

  ② 每一个结点最多有两棵子树,且分别称为该结点的左子树和右子树。

  在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树。另外,二叉树中的每个结点的子树被明显地分为左子树和右子树。

  在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个结点既没有左子树也没有右子树时,该结点即为叶子结点。

  例如,一个家族中的族谱关系如图1-1所示:

  A有后代B,C;B有后代D,E;C有后代F。

  典型的二叉树如图1-1所示:

  详细讲解二叉树的基本概念,见表1-2。

2011年计算机二级公共基础知识辅导笔记(6)

图1-1 二叉树图

父结点(根)

在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。例如,在图1-1中,结点A是树的根结点。

子结点和叶子结点

在树结构中,每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。例如,在图1-1中,结点D,E,F均为叶子结点。

在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。例如,在图1-1中,根结点A和结点B的度为2,结点C的度为1,叶子结点D,E,F的度为0。所以,该树的度为2。

深度

定义一棵树的根结点所在的层次为1,其他结点所在的层次等于它的父结点所在的层次加1。树的最大层次称为树的深度。例如,在图1-1中,根结点A在第1层,结点B,C在第2层,结点D,E,F在第3层。该树的深度为3。

子树

在树中,以某结点的一个子结点为根构成的树称为该结点的一棵子树。

表1-2 二叉树的基本概念

  2. 二叉树基本性质

  二叉树具有以下几个性质:

  性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点。

  性质2:深度为m的二叉树最多有2m-1个结点。

  性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。

  性质4:具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分。

  3. 满二叉树与完全二叉树

  满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。

  完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。

  对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现:对于任何一个结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为p+1。

  完全二叉树具有以下两个性质:

  性质1:具有n个结点的完全二叉树的深度为[log2n]+1。

  性质2:设完全二叉树共有n个结点。如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……,n给结点进行编号,则对于编号为k(k=1,2,……,n)的结点有以下结论:

  ① 若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2);

  ② 若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点);

  ③ 若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。

  1.6.2 二叉树的遍历

  在遍历二叉树的过程中,一般先遍历左子树,再遍历右子树。在先左后右的原则下,根据访问根结点的次序,二叉树的遍历分为三类:中序前序遍历、遍历和后序遍历。

  (1)前序遍历

  先访问根结点,然后遍历左子树,最后遍历右子树;并且在遍历左、右子树时,仍需先访问根结点,然后遍历左子树,最后遍历右子树。例如,对图1-1中的二叉树进行前序遍历的结果(或称为该二叉树的前序序列)为:A,B,D,E,C,F。

  (2)中序遍历

  先遍历左子树、然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。例如,对图1-1中的二叉树进行中序遍历的结果(或称为该二叉树的中序序列)为: D,B,E, A,C,F。

  (3)后序遍历

  先遍历左子树、然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。例如,对图1-1中的二叉树进行后序遍历的结果(或称为该二叉树的后序序列)为: D, E,B, F,C,A。

广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved