a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 115|回复: 0

[Visual Basic] 2012计算机二级考试VB公共基础知识4

[复制链接]
发表于 2012-7-31 22:10:12 | 显示全部楼层 |阅读模式
1.4树与二叉树
, z7 d  v( X  m9 W& j! F9 M# y考点7  树与二叉树及其基本性质
: i* A' ]) y( {  Q0 Y. B考试链接: 8 }/ L$ d, F( `9 Q7 O! q
考点7在笔试考试中,是一个必考的内容,在笔试考试中出现的几率为100%,主要是以选择的形式出现,有时也有出现在填空题中,分值为2分,此考点为重点掌握内容。重点识记树及二叉树的性质。
/ Q# K: m" Z4 W: n! _6 A误区警示:
7 I' |' t( z- f满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树。应该注意二者的区别。 $ Z7 I0 t; ~8 r6 e  P
1、树的基本概念
0 K% r' ~$ J9 A树(tree)是一种简单的非线性结构。在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点。每一个结点可以有多个后件,它们称为该结点的子结点。没有后件的结点称为叶子结点。
, V/ N/ @1 F1 f5 Q  T在树结构中,一个结点所拥有的后件个数称为该结点的度。叶子结点的度为0。在树中,所有结点中的最大的度称为树的度。 1 z' A. C2 l3 \# X) r
2、二叉树及其基本性质 6 N! I5 J) ]) [$ x# J. v
(1)二叉树的定义 / x9 q0 ^0 [$ j8 R
二叉树是一种很有用的非线性结构,具有以下两个特点: & F" D, R- u% ]
①非空二叉树只有一个根结点;
5 g2 l3 P$ b# p. B/ B7 A②每一个结点最多有两棵子树,且分别称为该结点的左子树和右子树。
# }5 g2 Q/ z1 T/ \, ]2 m由以上特点可以看出,在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树,而树结构中的每一个结点的度可以是任意的。另外,二叉树中的每个结点的子树被明显地分为左子树和右子树。在二叉树中,一个结点可以只有左子树而没有右子树,也可以只有右子树而没有左子树。当一个结点既没有左子树也没有右子树时,该结点即为叶子结点。
6 v9 T( U2 e0 V7 l/ B( d(2)二叉树的基本性质 : s" m, N3 b1 U8 T" p
二叉树具有以下几个性质: 9 J, I- ?) t  }  H; P! g
性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点; / ^6 E5 v7 e6 m
性质2:深度为m的二叉树最多有2m-1个结点;
3 y3 `- S) X5 T5 D" ^3 a2 @! Q% S6 ]$ F3 k性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总是比度为2的结点多一个。 " L. g; P! J) N9 r
性质4:具有n个结点的二叉树,其深度至少为[log2n]+1,其中[log2n]表示取log2n的整数部分。 % o) l) c8 C" K( x
  ; R  s9 r4 Z& X5 r
小技巧:在二叉树的遍历中,无论是前序遍历,中序遍历还是后序遍历,二叉树的叶子结点的先后顺序都是不变的。
7 [' G# P2 Y0 L2 C7 ~3、满二叉树与完全二叉树 . J5 w( p4 l$ F5 B8 C9 D
满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。 / S9 [: e' Z7 @5 B
完全二叉树是指这样的二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。
4 H0 D" T% q: c; l  Y# V+ x4 Q, y7 J对于完全二叉树来说,叶子结点只可能在层次最大的两层上出现:对于任何一个结点,若其右分支下的子孙结点的最大层次为p,则其左分支下的子孙结点的最大层次或为p,或为p+1。 7 n0 j& e- v7 H3 F
完全二叉树具有以下两个性质: / ~. s4 ]1 I! D$ D
性质5:具有n个结点的完全二叉树的深度为[log2n]+1。
5 V1 N1 b2 h# ^: K7 F# k( S性质6:设完全二叉树共有n个结点。如果从根结点开始,按层次(每一层从左到右)用自然数1,2,……,n给结点进行编号,则对于编号为k(k=1,2,……,n)的结点有以下结论: ' Z; y+ V  ~6 n2 i; h7 R
①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2)。
: F5 Y% D5 F4 M8 H( p8 s( c3 Z4 O- a②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。
6 G1 a; e; E6 S% H. Z* @" t( Q③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。
  Z1 c3 \, V) r1 R, L" Z$ G) O7 l- h$ n. N$ t, D, j9 H
考点8  二叉树的遍历   Y* O, a7 g; Y1 D
考试链接:
$ i' W* s4 G6 ]: X  p考点8在笔试考试中考核几率为30%,分值为2分,读者应该熟练掌握各种遍历的具体算法,能由两种遍历的结果推导另一种遍历的结果。 9 q! c% F5 b$ [" O+ [- E( u
在遍历二叉树的过程中,一般先遍历左子树,再遍历右子树。在先左后右的原则下,根据访问根结点的次序,二叉树的遍历分为三类:前序遍历、中序遍历和后序遍历。   s: w6 R" I/ ]/ ?2 M- C* R  H
(1)前序遍历:先访问根结点、然后遍历左子树,最后遍历右子树;并且,在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
, [- O+ Y" q2 k) Y, s8 v$ Q: j(2)中序遍历:先遍历左子树、然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
, M; Q% P, v: d; q(3)后序遍历:先遍历左子树、然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。 : X" B; P3 P( v/ l$ \6 w# |
  
+ ^& b0 ], r) T+ S9 h* B% ~3 ~) @ 疑难解答:树与二叉树的不同之处是什么? 9 Y: r: J! }8 V6 X% @  ]5 _
在二叉树中,每一个结点的度最大为2,即所有子树(左子树或右子树)也均为二叉树,而树结构中的每一个结点的度可以是任意的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-4 13:10 , Processed in 0.282447 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表