2016年考研核心题型【数据结构部分】【第4章 树与二叉树】
- 格式:pdf
- 大小:819.71 KB
- 文档页数:21
第 4 章 树结构1.选择题(1)C (2)C (3)B (4)B (5)B (6)C (7)C (8)D (9)A (10)D (11)D (12)B (13)B (14)D (15)B2.判断题(1)√(2)√ (3)Ⅹ (4)Ⅹ(5)√ (6)Ⅹ(7)√ (8)√(9)√(10)Ⅹ (11)Ⅹ(12)Ⅹ(13)√(14)Ⅹ(15)Ⅹ(16)Ⅹ(17)√(18)Ⅹ(19)Ⅹ(20)√3.简答题(1)一棵度为 2 的树与一棵二叉树有何区别?树与二叉树之间有何区别?【解答】①二叉树是有序树,度为 2 的树是无序树,二叉树的度不一定是 2。
②二叉树是有序树,每个结点最多有两棵子树,树是无序树,且每个结点可以有多棵子树。
A(2)对于图 4-37 所示二叉树,试给出: 1)它的顺序存储结构示意图;BC2)它的二叉链表存储结构示意图; 3)它的三叉链表存储结构示意图。
DEF【解答】 1)顺序存储结构示意图:AB CDEF ^ ^ ^ G^ ^ HGH(图 4-37)2)二叉链表存储结构示意图:3)三叉链表存储结构示意图:ABC^^D^E^ ^ F^G^^H^A^BC^^ D^E^^F^ G^^ H^(3)对于图 4-38 所示的树,试给出: 1)双亲数组表示法示意图; 2)孩子链表表示法示意图; 3)孩子兄弟链表表示法示意图。
ABCGFEDIHJKMN(图 4-38)【解答】 1)双亲数组表示法示意图:2)孩子链表表示法示意图:0 A -1 1 B0 2 C0 3 D2 4 E2 5F1 6 G1 7 H5 8I 2 9J 4 10 K 4 11 M 3 12 N 83)孩子兄弟链表表示法示意图:0A 1B 2C 3D 4E 5F 6G 7H 8I 9J 10 K 11 M 12 N12^56^348^11 ^ 910 ^7^12 ^ABC^^GFEDI^^ H^^J^ K^ ^ M^ ^ N^(4)画出图 4-39 所示的森林经转换后所对应的二叉树,并指出森林中满足什么条件的 结点在二叉树中是叶子。
一、填空题1. 不相交的树的聚集称之为森林。
2. 从概念上讲,树与二叉树是两种不同的数据结构,将树转化为二叉树的基本目的是_树可采用孩子-兄弟链表(二叉链表)做存储结构,目的是利用二叉树的已有算法解决树的有关问题。
3. 深度为k的完全二叉树至少有2 k-1个结点。
至多有2 k-1个结点,若按自上而下,从左到右次序给结点编号(从1开始),则编号最小的叶子结点的编号是2 k-2+1。
4. 在一棵二叉树中,度为零的结点的个数为n 0,度为2的结点的个数为n 2,则有n0= n2+1。
5. 一棵二叉树的第i(i≥1)层最多有2 i-1个结点;一棵有n(n>0)个结点的满二叉树共有(n+1)/2个叶子和(n-1)/2个非终端结点。
6.现有按中序遍历二叉树的结果为abc,问有5种不同形态的二叉树可以得到这一遍历结果。
7. 哈夫曼树是带权路径最小的二叉树。
8. 前缀编码是指任一个字符的编码都不是另一个字符编码的前缀的一种编码方法,是设计不等长编码的前提。
9. 以给定的数据集合{4,5,6,7,10,12,18}为结点权值构造的Huffman 树的加权路径长度是165 。
10. 树被定义为连通而不具有回路的(无向)图。
11. 若一棵根树的每个结点最多只有两个孩子,且孩子又有左、右之分,次序不能颠倒,则称此根树为二叉树。
12. 高度为k,且有个结点的二叉树称为二叉树。
2k-1 满13. 带权路径长度最小的二叉树称为最优二叉树,它又被称为树。
Huffman14. 在一棵根树中,树根是为零的结点,而为零的结点是结点。
入度出度树叶15. Huffman树中,结点的带权路径长度是指由到之间的路径长度与结点权值的乘积。
结点树根16. 满二叉树是指高度为k,且有个结点的二叉树。
二叉树的每一层i上,最多有个结点。
2k-1 2i-1二、单选题1. 具有10个叶结点的二叉树中有(B) 个度为2的结点。
(A)8 (B)9 (C)10 (D)112.对二叉树的结点从1开始进行连续编号,要求每个结点的编号大于其左右孩子的编号,同一结点的左右孩子中,其左孩子的编号小于其右孩子的编号,则可采用_(3)次序的遍历实现编号。
第6章树和二叉树6.1 知识点概述树(Tree)形结构是一种很重要的非线性结构,它反映了数据元素之间的层次关系和分支关系。
在计算机科学中具有广泛的应用。
1、树的定义树(Tree)是n(n≥0)个数据元素的有限集合。
当n=0时,称这棵树为空树。
在一棵非空树T中:(1)有一个特殊的数据元素称为树的根结点,根结点没有前驱结点。
(2)若n>1,除根结点之外的其余数据元素被分成m(m>0)个互不相交的集合T1,T2,…,Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树。
树T1,T2,…,Tm称为这个根结点的子树。
2、树的基本存储结构(1)双亲表示法由于树中的每一个结点都有一个唯一确定的双亲结点,所以我们可用一组连续的存储空间(即一维数组)存储树中的结点。
每个结点有两个域:一个是data域,存放结点信息,另一个是parent域,用来存放双亲的位置(指针)。
(2)孩子表示法将一个结点所有孩子链接成一个单链表形,而树中有若干个结点,故有若干个单链表,每个单链表有一个表头结点,所有表头结点用一个数组来描述这种方法通常是把每个结点的孩子结点排列起来,构成一个单链表,称为孩子链表。
(3)双亲孩子表示法双亲表示法是将双亲表示法和孩子表示法相结合的结果。
其仍将各结点的孩子结点分别组成单链表,同时用一维数组顺序存储树中的各结点,数组元素除了包括结点本身的信息和该结点的孩子结点链表的头指针之外,还增设一个域,存储该结点双亲结点在数组中的序号。
(4)孩子兄弟表示法这种表示法又称为树的二叉表示法,或者二叉链表表示法,即以二叉链表作为树的存储结构。
链表中每个结点设有两个链域,分别指向该结点的第一个孩子结点和下一个兄弟(右兄弟)结点。
3、二叉树的定义二叉树(Binary Tree)是个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。
当集合为空时,称该二叉树为空二叉树。
数据结构之树和⼆叉树⼀树1 什么是树树状图是⼀种,它是由n(n>=1)个有限节点组成⼀个具有层次关系的。
把它叫做“树”是因为它看起来像⼀棵倒挂的树,也就是说它是根朝上,⽽叶朝下的。
它具有以下的特点:每个节点有零个或多个⼦节点;没有⽗节点的节点称为根节点;每⼀个⾮根节点有且只有⼀个⽗节点;除了根节点外,每个⼦节点可以分为多个不相交的⼦树;树(tree)是包含n(n>0)个结点的有穷集,其中:(1)每个元素称为结点(node);(2)有⼀个特定的结点被称为根结点或树根(root)。
(3)除根结点之外的其余数据元素被分为m(m≥0)个互不相交的集合T1,T2,……Tm-1,其中每⼀个集合Ti(1<=i<=m)本⾝也是⼀棵树,被称作原树的⼦树(subtree)。
2 相关术语节点的度:⼀个节点含有的⼦树的个数称为该节点的度;叶节点或终端节点:度为0的节点称为叶节点;⾮终端节点或分⽀节点:度不为0的节点;双亲节点或⽗节点:若⼀个节点含有⼦节点,则这个节点称为其⼦节点的⽗节点;孩⼦节点或⼦节点:⼀个节点含有的⼦树的根节点称为该节点的⼦节点;兄弟节点:具有相同⽗节点的节点互称为兄弟节点;树的度:⼀棵树中,最⼤的节点的度称为树的度;节点的层次:从根开始定义起,根为第1层,根的⼦节点为第2层,以此类推;树的⾼度或深度:树中节点的最⼤层次;堂兄弟节点:双亲在同⼀层的节点互为堂兄弟;节点的祖先:从根到该节点所经分⽀上的所有节点;⼦孙:以某节点为根的⼦树中任⼀节点都称为该节点的⼦孙。
森林:由m(m>=0)棵互不相交的树的集合称为森林;3 树模拟⽂件系统⽰例class Node:def__init__(self, name, type='dir'): = nameself.type = type # "dir" or "file"self.children = []self.parent = Nonedef__repr__(self):return class FileSystemTree:def__init__(self):self.root = Node("/")self.now = self.root # 当前⽬录def mkdir(self, name):# name已/结尾的⽂件夹if name[-1] != "/":name += "/"node = Node(name)self.now.children.append(node)node.parent = self.nowdef ls(self):return self.now.childrendef cd(self, name):if name[-1] != "/":name += "/"if name == "../":self.now = self.now.parentreturnfor child in self.now.children:if == name:self.now = childreturnraise ValueError("invalid dir")tree = FileSystemTree()tree.mkdir("var/")tree.mkdir("bin/")tree.mkdir("usr/")print(tree.root.children)print(tree.ls())tree.cd('bin/')tree.mkdir('python/')print(tree.ls())tree.cd("../")print(tree.ls())⼆、⼆叉树⼆叉树的链式存储:将⼆叉树的节点定义为⼀个对象,节点之间通过类似链表的链接⽅式来连接* 度不超过2的树* 每个节点最多有两个孩⼦节点* 两个孩⼦节点被区分为左孩⼦节点和右孩⼦节点满⼆叉树:⼀个⼆叉树如果每⼀个层的节点数达到最⼤值,则这个⼆叉树就是满⼆叉树完全⼆叉树:叶节点只能出现在最下层和次下层,并且最下⾯⼀层的节点都集中在该层最左边的若⼲位置的⼆叉树⼆叉树的遍历⽅式:前序遍历: EACBDGF中序遍历: ABCDEGF后序遍历: BDCAFGE层次遍历: EAGCFBDfrom collections import dequeclass BiTreeNode:def__init__(self, data):self.data = dataself.lchild = Noneself.rchild = Nonedef level_order(root):queue = deque()queue.append(root)while len(queue) > 0: # 只要栈不空node = queue.popleft()print(node.data, end=',')if node.lchild:queue.append(node.lchild)if node.rchild:queue.append(node.rchild)root = BiTreeNode(100)root.lchild = BiTreeNode(30)root.rchild = BiTreeNode(102)level_order(root)三⼆叉搜索树⼆叉搜索树是⼀棵⼆叉树且满⾜性质:设X是⼆叉树的⼀个节点。
数据结构第四章的习题答案数据结构第四章的习题答案在学习数据结构的过程中,习题是非常重要的一环。
通过解答习题,我们可以更好地理解和应用所学的知识。
在第四章中,我们学习了树和二叉树的相关概念和操作。
下面我将为大家提供一些第四章习题的答案,希望能帮助大家更好地掌握这一章节的内容。
1. 请给出树和二叉树的定义。
树是由n(n>=0)个结点构成的有限集合,其中有且仅有一个特定的结点称为根结点,其余的结点可以分为若干个互不相交的有限集合,每个集合本身又是一个树,称为根的子树。
二叉树是一种特殊的树结构,其中每个结点最多有两个子结点,分别称为左子结点和右子结点。
二叉树具有递归的定义,即每个结点的左子树和右子树都是二叉树。
2. 请给出树和二叉树的遍历方式。
树的遍历方式包括前序遍历、中序遍历和后序遍历。
前序遍历是先访问根结点,然后依次遍历左子树和右子树。
中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树。
后序遍历是先遍历左子树和右子树,最后访问根结点。
二叉树的遍历方式包括前序遍历、中序遍历和后序遍历。
前序遍历是先访问根结点,然后依次遍历左子树和右子树。
中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树。
后序遍历是先遍历左子树和右子树,最后访问根结点。
3. 给定一个二叉树的前序遍历序列和中序遍历序列,请构建该二叉树。
这个问题可以通过递归的方式解决。
首先,根据前序遍历序列的第一个结点确定根结点。
然后,在中序遍历序列中找到根结点的位置,该位置左边的结点为左子树的中序遍历序列,右边的结点为右子树的中序遍历序列。
接下来,分别对左子树和右子树进行递归构建。
4. 给定一个二叉树的中序遍历序列和后序遍历序列,请构建该二叉树。
和前面的问题类似,这个问题也可以通过递归的方式解决。
首先,根据后序遍历序列的最后一个结点确定根结点。
然后,在中序遍历序列中找到根结点的位置,该位置左边的结点为左子树的中序遍历序列,右边的结点为右子树的中序遍历序列。
1、树最适合用来表示()。
A.元素之间无联系的数据B.元素之间具有层次关系的数据C.无序数据元素D.有序数据元素正确答案:B2、现有一“遗传”关系,设x是y的父亲,则x可以把他的属性遗传给y。
表示该遗传关系最适合的数据结构为()。
A.线性表B.树C.数组D.图正确答案:B3、一棵节点个数为n、高度为h的m(m≥3)次树中,其分支数是()。
A.n+hB.h-1C.n-1D.nh正确答案:C4、若一棵3次树中有2个度为3的节点,1个度为2的节点,2个度为1的节点,该树一共有()个节点。
A.11B.5C.8D.10正确答案:A解析: A、对于该3次树,其中有n3=2,n2=1,n1=2,总分支数=总度数=n-1,总度数=1×n1+2×n2+3×n3=10,则n=总度数+1=11。
5、设树T的度为4,其中度为1、2、3、4的节点个数分别为4、2、1、1,则T中的叶子节点个数是()。
A.6B.8C.7D.5正确答案:B解析: B、这里n1=4,n2=2,n3=1,n4=1,度之和=n-1=n1+2n2+3n3+4n4=15,所以n=16,则n0=n-n1-n2-n3-n4=16-8=8。
6、有一棵三次树,其中n3=2,n2=1,n0=6,则该树的节点个数为()。
A.9B.12C.大于等于9的任意整数D.10正确答案:C解析: C、n=n0+n1+n2+n3=6+n1+1+2=9+n1。
7、假设每个节点值为单个字符,而一棵树的后根遍历序列为ABCDEFGHIJ,则其根节点值是()。
A.JB.BC.以上都不对D.A正确答案:A8、一棵度为5、节点个数为n的树采用孩子链存储结构时,其中空指针域的个数是()。
A.4nB.4n-1C.4n+1D.5n正确答案:C解析: C、总指针数=5n,非空总指针数=分支数=n-1,空指针域的个数=5n-(n-1)=4n+1。
9、有一棵三次树,其中n3=2,n2=2,n1=1,该树采用孩子兄弟链存储结构时,则总的指针域数为()。
数据结构第四章树和二叉树习题04 树和二叉树【单选题】1. 下列选项中不属于树形结构逻辑特征的是(C)。
A、有的结点有多个直接后继 B、有的结点没有直接后继 C、有的结点有多个直接前驱 D、有的结点没有直接前驱2. 下列叙述中错误的是(B)。
A、树的度与该树中结点的度的最大值相等B、二叉树就是度为2的有序树C、有5个叶子结点的二叉树中必有4个度为2的结点D、满二叉树一定是完全二叉树3. 一棵二叉树中第6层上最多有(C)个结点。
A、2 B、31C、32D、644. 一棵高为k的二叉树最少有(B)个结点。
A、k-1 B、kC、k+1D、2k-1E、2k-15. 一棵高为k的二叉树最多有(C)个结点。
A、k+1 B、2k-1 C、2k-1 D、2k E、2k+16. 一棵高为k的完全二叉树最少有(B)个结点。
A、2k-1-1 B、2k-1 C、2k-1 D、2k7. 一棵高为k的完全二叉树最多有(C)个结点。
A、2k-1-1 B、2k-1 C、2k-1 D、2k8. 一棵度为3的树中,度为3的结点有2个,度为2的结点有2个,度为1的结点有2个,则度为0的结点有(D)个。
A、4 B、5 C、6 D、79. 含1000个结点的完全二叉树的高度为(B)。
A、9 B、10 C、11 D、1210. 设完全二叉树T中含有n个结点,对这些结点从0开始按层序进行编号,若编号为i的结点有左孩子,则左孩子的编号为(D)。
A、2(i-1)B、2i-1C、2iD、2i+1E、2(i+1)11. 已知一算术表达式的中缀形式为A+B*C-D/E,后缀形式为ABC*+DE/-,其前缀形式为(D)。
A、-A+B*C/DE B、-A+B*CD/EC、-+*ABC/DED、-+A*BC/DE12. 已知一棵二叉树的先序序列为abdegcfh,中序序列为dbgeachf,则该二叉树的后序序列为(B)。
A、gedhfbca B、dgebhfca C、abcdefgh D、acbfedhg13. 先序遍历与中序遍历所得遍历序列相同的二叉树为(D)。
数据结构树和二叉树习题及答案集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#习题六树和二叉树一、单项选择题1.以下说法错误的是 ( )A.树形结构的特点是一个结点可以有多个直接前趋B.线性结构中的一个结点至多只有一个直接后继C.树形结构可以表达(组织)更复杂的数据D.树(及一切树形结构)是一种"分支层次"结构E.任何只含一个结点的集合是一棵树2.下列说法中正确的是 ( )A.任何一棵二叉树中至少有一个结点的度为2B.任何一棵二叉树中每个结点的度都为2C.任何一棵二叉树中的度肯定等于2D.任何一棵二叉树中的度可以小于23.讨论树、森林和二叉树的关系,目的是为了()A.借助二叉树上的运算方法去实现对树的一些运算B.将树、森林按二叉树的存储方式进行存储C.将树、森林转换成二叉树D.体现一种技巧,没有什么实际意义4.树最适合用来表示 ( )A.有序数据元素 B.无序数据元素C.元素之间具有分支层次关系的数据 D.元素之间无联系的数据5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B.11 C.15 D.不确定6.设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。
与森林F对应的二叉树根结点的右子树上的结点个数是()。
A.M1 B.M1+M2 C.M3 D.M2+M37.一棵完全二叉树上有1001个结点,其中叶子结点的个数是()A. 250 B. 500 C.254 D.505 E.以上答案都不对8. 设给定权值总数有n 个,其哈夫曼树的结点总数为( )A.不确定 B.2n C.2n+1 D.2n-19.二叉树的第I层上最多含有结点数为()A.2I B. 2I-1-1 C. 2I-1 D.2I -110.一棵二叉树高度为h,所有结点的度或为0,或为2,则这棵二叉树最少有( )结点A.2h B.2h-1 C.2h+1 D.h+111. 利用二叉链表存储树,则根结点的右指针是()。
第三章树与二叉树3.1树的概念1.树的定义树(Tree)是n(n≥0)个有限数据元素的集合。
当n=0时,称这棵树为空树。
在一棵非树T中:1)有一个特殊的数据元素称为树的根结点,根结点没有前驱结点;2)若n>1,除根结点之外的其余数据元素被分成m(m>0)个互不相交的集合T1,T2,…Tm,其中每一个集合Ti(1≤i≤m)本身又是一棵树。
树T1,T2,…,Tm称为这个根结点的子树。
2.相关术语(1)结点的度:结点所拥有的子树的个数称为该结点的度。
(2)叶结点:度为0的结点称为叶结点,或者称为终端结点。
(3)分支结点:度不为0的结点称为分支结点,或者称为非终端结点。
一棵树的结点除叶结点外,其余的都是分支结点。
(4)孩子、双亲、兄弟:树中一个结点的子树的根结点称为这个结点的孩子。
这个结点称为它孩子结点的双亲。
具有同一个双亲的孩子结点互称为兄弟。
(5)路径、路径长度:如果一棵树的一串结点n1,n2,…,nk有如下关系:结点ni是ni+1的父结点(1≤i<k),就把n1,n2,…,nk称为一条由n1至nk的路径。
这条路径的长度是k-1。
(6)祖先、子孙:在树中,如果有一条路径从结点M到结点N,那么M就称为N的祖先,而N称为M的子孙。
(7)结点的层数:树的根结点的层数为1,其余结点的层数等于它的双亲结点的层数加1。
(8)树的深度:树中所有结点的最大层数称为树的深度。
(9)树的度:树中各结点度的最大值称为该树的度。
(10)有序树和无序树:如果一棵树中结点的各子树从左到右是有次序的,即若交换了某结点各子树的相对位置,则构成不同的树,称这棵树为有序树;反之,则称为无序树。
(11)森林:零棵或有限棵不相交的树的集合称为森林。
自然界中树和森林是不同的概念,但在数据结构中,树和森林只有很小的差别。
任何一棵树,删去根结点就变成了森林。
3.2二叉树3.2.1定义与性质1.二叉树二叉树(Binary Tree)是n个有限元素的集合,该集合或者为空、或者由一个称为根(root)的元素及两个不相交的、被分别称为左子树和右子树的二叉树组成。
数据结构_树与⼆叉树总结1、树注:⼆叉树的所有问题,就是让你在前中后序位置注⼊巧妙的代码逻辑,去达到⾃⼰的⽬的!!定义具有n(n≥)个节点的有穷集合D与D上的关系集合R构成的结构T。
即T:=(D,R)。
树的逻辑表⽰法:树形表⽰、⽂⽒图表⽰、凹⼊表⽰、嵌套括号表⽰。
有序树、⽆序树。
基本概念双亲节点、祖先节点、兄弟节点、孩⼦节点、⼦孙节点节点的度、树的度、节点的层次、树的深度或称⾼度。
(层次、深度从1起)根节点、叶⼦节点(度为0的节点)、分⽀节点(度⾮0的节点)、内部节点(⾮根分⽀节点)性质对于度为k的树:1、节点数=度数+12、第i层最多节点数:k(i-1),i≥13、⾼为i的k叉树节点数最多:(k i-1)/(k-1),i≥14、n个节点的k叉树深度最⼩为:ceil( log k( n(k-1)+1 ) )存储结构多重链表:定长链节点个数(⼆叉树等)、不定长链节点个数三重链表:每个节点三个指针域(第⼀个孩⼦节点、双亲节点、第⼀个兄弟节点)对树的操作构建、遍历、销毁;插⼊某节点、查找某节点、删除某节点2、⼆叉树⼆叉树是有序树,有5中基本形态。
(度不超过2的树不⼀定是⼆叉树,因为⼆叉树还要求左右⼦树有序不能颠倒)n个节点可以构建卡特兰数 f(n)= (k=1~n)Σ(f(k-1)f(n-k)) = (C2n n)/(n+1) ,f(0)=f(1)=1种形态的⼆叉树。
对于有n个节点的有序序列,其BST树也是卡特兰数种。
性质1、节点数=度数+12、第i层节点数:2(i-1),i≥13、⾼为i的⼆叉树节点数最多:2i-1,i≥14、n个节点的⼆叉树深度最⼩为:ceil( log2(n+1) ),为理想平衡⼆叉树时取最⼩值5、度为0的节点数=度为2的节点数+1。
(因为节点数n=n0+n1+n2 且分⽀数 n-1=n1+2n2,联⽴可得之)6、n个节点的完全⼆叉树从1起对节点从上到下从左到右的编号,编号为i的节点:⽗节点编号为 floor(i/2),除⾮该节点已为⽗节点;左孩⼦节点编号为2i,除⾮2i>n即该节点已为叶⼦节点;右孩⼦编号为2i+1,除⾮2i+1>n即右孩⼦不存在。
树与二叉树
一、树的基本概念
树(tree)是一种简单的非线性结构。
在树这种数据结构中,所有数据元素之间的关系具有明显的层次特性。
二、二叉树的定义及其存储结构
(一)二叉树的定义
二叉树具有以下两个特点:
<1>非空二叉树只有一个根结点;
<2>每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。
(二)二叉树的存储结构
在计算机中,二叉树通常采用链式存储结构。
在二叉树中,由于每一个元素可以有两个后件(即两个子结点),因此,用于存储二叉树的存储结点的指针域有两个:一个用于指向该结点的左子节点的存储地址,称为左指针域;另一个用于指向该结点的右子结点的存储地址,称为右指针域。
(三)二叉树的遍历
二叉树的遍历是指不重复地访问二叉树中的所有结点。
二叉树的遍历可以分为:
<1>前序遍历(DLR)
首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左、右子数时,仍然先访问根结点,然后遍历左子树,
<2>中序遍历(LDR)
首先遍历左子树,然后访问根结点,最后遍历右子树;在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
<3>后序遍历(LRD)
首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。