二叉树
- 格式:doc
- 大小:217.00 KB
- 文档页数:11
二叉树知识点总结1. 二叉树的性质1.1 二叉树的性质一:二叉树的深度二叉树的深度是指从根节点到叶子节点的最长路径长度。
对于一个空树而言,它的深度为0;对于只有一个根节点的树而言,它的深度为1。
根据定义可知,深度为k的二叉树中,叶子节点的深度值为k。
由此可知,二叉树的深度为所有叶子节点深度的最大值。
1.2 二叉树的性质二:二叉树的高度二叉树的高度是指从根节点到叶子节点的最短路径长度。
对于一个空树而言,它的高度为0;对于只有一个根节点的树而言,它的高度为1。
由此可知,二叉树的高度总是比深度大一。
1.3 二叉树的性质三:二叉树的节点数量对于一个深度为k的二叉树而言,它最多包含2^k - 1个节点。
而对于一个拥有n个节点的二叉树而言,它的深度最多为log2(n+1)。
1.4 二叉树的性质四:满二叉树满二叉树是一种特殊类型的二叉树,它的每个节点要么是叶子节点,要么拥有两个子节点。
满二叉树的性质是:对于深度为k的满二叉树而言,它的节点数量一定是2^k - 1。
1.5 二叉树的性质五:完全二叉树完全二叉树是一种特殊类型的二叉树,它的所有叶子节点都集中在树的最低两层,并且最后一层的叶子节点从左到右依次排列。
对于一个深度为k的完全二叉树而言,它的节点数量一定在2^(k-1)和2^k之间。
2. 二叉树的遍历二叉树的遍历是指按照一定的顺序访问二叉树的所有节点。
二叉树的遍历主要包括前序遍历、中序遍历和后序遍历三种。
2.1 前序遍历(Pre-order traversal)前序遍历的顺序是:根节点 -> 左子树 -> 右子树。
对于一个二叉树而言,前序遍历的结果就是按照“根-左-右”的顺序访问所有节点。
2.2 中序遍历(In-order traversal)中序遍历的顺序是:左子树 -> 根节点 -> 右子树。
对于一个二叉树而言,中序遍历的结果就是按照“左-根-右”的顺序访问所有节点。
2.3 后序遍历(Post-order traversal)后序遍历的顺序是:左子树 -> 右子树 -> 根节点。
各种二叉树的介绍
二叉树是一种常见的数据结构,每个节点最多只能有两个子节点,通常称为左子节点和右子节点。
根据二叉树的不同特性和限制,可以将其分为多种类型,包括普通二叉树、满二叉树、完全二叉树、平衡二叉树等。
普通二叉树:这是最基本的二叉树形式,每个节点最多有两个子节点,且没有特定的限制条件。
满二叉树:在满二叉树中,所有叶子节点都在最后一层,且节点总数为2^n-1,其中n为层数。
也就是说,除了叶子节点外,每个节点都有两个子节点。
完全二叉树:完全二叉树的所有叶子节点都在最后一层或倒数第二层,且最后一层的叶子节点在左边连续,倒数第二层的叶子节点在右边连续。
如果将满二叉树从右至左、从下往上删除一些节点,剩余的结构就构成完全二叉树。
平衡二叉树(AVL树):平衡二叉树是一种特殊的二叉树,它要求每个节点的左子树和右子树的高度差绝对值不超过1,且每个子树也必须是一棵平衡二叉树。
这种树的查找效率通常高于普通二叉树,因此常用于需要频繁查找的场景。
此外,还有一些特殊的二叉树,如红黑树、B树、B+树等,它们具有不同的特性和应用场景。
红黑树是一种自平衡的二叉查找树,它的左右子树高度差有可能大于1,但通过对节点进行旋转和重新着色等操作,可以保持树的平衡性。
B树和B+树则常用于数据库和文件系统中,它们支持对节点进行分裂和合并操作,以满足快速查找、插入和删除数据的需求。
总之,二叉树是一种非常有用的数据结构,它可以用于实现各种算法和应用,如排序、搜索、压缩、加密等。
不同类型的二叉树具有不同的特性和应用场景,需要根据具体需求进行选择和使用。
二叉树基本知识:
1.二叉树的定义:二叉树是每个结点最多有两个子树的树结构,它有五种基本形态:
二叉树可以是空集;根可以有空的左子树或右子树;或者左、右子树皆为空。
2.二叉树的性质:若规定根结点的层数为1,则一颗非空二叉树的第i层上最多有2^(i-1)
(i>0)个结点。
若规定只有根结点的二叉树的深度为1,则深度为K的二叉树的最大结
点数是2^K -1 (k >= 0)个。
对任何一颗二叉树,如果其叶子结点个数为n0,度为2的非叶子结点个数为n2,则有n0=n2+1。
3.二叉树的分类:二叉树有两大类,一是普通二叉树,二是特殊二叉树。
普通二叉树
是指除了满二叉树和完全二叉树之外的二叉树,特殊二叉树包括满二叉树和完全二叉树。
满二叉树是指所有层都完全填满的二叉树,而完全二叉树是指只有最下面两层结点度数可以小于2,并且最下面一层的叶子结点都位于本层中间位置的二叉树。
4.二叉树的遍历:二叉树的遍历主要有三种方法,分别是前序遍历、中序遍历和后序
遍历。
前序遍历是先访问根结点,然后遍历左子树,最后遍历右子树;中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树;后序遍历是先遍历左子树,然后遍历右子树,最后访问根结点。
数据结构之⼆叉树(BinaryTree)⽬录导读 ⼆叉树是⼀种很常见的数据结构,但要注意的是,⼆叉树并不是树的特殊情况,⼆叉树与树是两种不⼀样的数据结构。
⽬录 ⼀、⼆叉树的定义 ⼆、⼆叉树为何不是特殊的树 三、⼆叉树的五种基本形态 四、⼆叉树相关术语 五、⼆叉树的主要性质(6个) 六、⼆叉树的存储结构(2种) 七、⼆叉树的遍历算法(4种) ⼋、⼆叉树的基本应⽤:⼆叉排序树、平衡⼆叉树、赫夫曼树及赫夫曼编码⼀、⼆叉树的定义 如果你知道树的定义(有限个结点组成的具有层次关系的集合),那么就很好理解⼆叉树了。
定义:⼆叉树是n(n≥0)个结点的有限集,⼆叉树是每个结点最多有两个⼦树的树结构,它由⼀个根结点及左⼦树和右⼦树组成。
(这⾥的左⼦树和右⼦树也是⼆叉树)。
值得注意的是,⼆叉树和“度⾄多为2的有序树”⼏乎⼀样,但,⼆叉树不是树的特殊情形。
具体分析如下⼆、⼆叉树为何不是特殊的树 1、⼆叉树与⽆序树不同 ⼆叉树的⼦树有左右之分,不能颠倒。
⽆序树的⼦树⽆左右之分。
2、⼆叉树与有序树也不同(关键) 当有序树有两个⼦树时,确实可以看做⼀颗⼆叉树,但当只有⼀个⼦树时,就没有了左右之分,如图所⽰:三、⼆叉树的五种基本状态四、⼆叉树相关术语是满⼆叉树;⽽国际定义为,不存在度为1的结点,即结点的度要么为2要么为0,这样的⼆叉树就称为满⼆叉树。
这两种概念完全不同,既然在国内,我们就默认第⼀种定义就好)。
完全⼆叉树:如果将⼀颗深度为K的⼆叉树按从上到下、从左到右的顺序进⾏编号,如果各结点的编号与深度为K的满⼆叉树相同位置的编号完全对应,那么这就是⼀颗完全⼆叉树。
如图所⽰:五、⼆叉树的主要性质 ⼆叉树的性质是基于它的结构⽽得来的,这些性质不必死记,使⽤到再查询或者⾃⼰根据⼆叉树结构进⾏推理即可。
性质1:⾮空⼆叉树的叶⼦结点数等于双分⽀结点数加1。
证明:设⼆叉树的叶⼦结点数为X,单分⽀结点数为Y,双分⽀结点数为Z。
数据结构二叉树知识点总结二叉树是一种常见的数据结构,它由节点组成,每个节点最多可以有两个子节点,分别称为左子节点和右子节点。
二叉树有很多重要的特性和操作,下面是一些关于二叉树的知识点总结。
1.二叉树的基本概念-根节点:树的顶部节点,没有父节点。
-子节点:根节点下的节点。
-叶节点:没有子节点的节点。
-父节点:一个节点的直接上级节点。
-高度:树的最大层数,根节点的层数为0。
-深度:树的层数,叶节点的深度为最大深度。
-层次遍历:按层次的顺序依次访问每个节点。
2.二叉树的分类-满二叉树:每个节点要么没有子节点,要么有两个子节点。
-完全二叉树:除了最后一层外,其它层的节点都是满的,并且最后一层的节点都靠左排列。
-二叉树:左子节点的值小于父节点的值,右子节点的值大于父节点的值。
3.二叉树的表示方法- 数组表示法:将树的节点按层次遍历的顺序存储在一个数组中,对于任意节点i,它的父节点在位置floor((i-1)/2),左子节点在位置2*i+1,右子节点在位置2*i+2-链表表示法:使用节点对象保存节点的数据和指向左右子节点的指针。
4.二叉树的遍历-前序遍历:先访问根节点,然后递归地遍历左子树和右子树。
-中序遍历:先递归地遍历左子树,然后访问根节点,最后遍历右子树。
-后序遍历:先递归地遍历左子树和右子树,最后访问根节点。
-层次遍历:按层次的顺序依次访问每个节点。
5.二叉树的应用-表达式树:使用二叉树表示数学表达式,可以方便地计算表达式的值。
-堆:一种特殊的二叉树,用于实现优先队列。
-平衡二叉树:保持左右子树高度差不超过1的二叉树,用于实现高效的查找操作。
-哈夫曼树:用于数据压缩,将出现频率较高的字符编码为较短的二进制串。
6.二叉树的操作-插入节点:将新节点插入到树的适当位置,保持二叉树的性质。
-删除节点:删除指定节点,保持二叉树的性质。
-节点:在树中指定节点。
-最小值和最大值:找到树中的最小值和最大值。
-判断是否相等:判断两个二叉树是否相等。
引言概述:二叉树是计算机科学中一种重要的数据结构,其特点是每个节点最多有两个子节点。
在计算机科学中,二叉树被广泛应用于搜索、排序和组织数据等领域。
本文将对二叉树的知识点进行总结和详细阐述,以帮助读者更好地理解和应用二叉树。
正文内容:一、二叉树的基本概念1.二叉树的定义:二叉树是一种特殊的树结构,每个节点最多只有两个子节点。
2.二叉树的特点:每个节点最多有两个子节点,左子节点和右子节点。
3.二叉树的性质:二叉树的左子树和右子树也是二叉树,每个节点的左子树中的所有节点都小于该节点,右子树中的所有节点都大于该节点。
二、二叉树的遍历方式1.前序遍历:先访问根节点,然后递归遍历左子树和右子树。
2.中序遍历:先递归遍历左子树,然后访问根节点,最后递归遍历右子树。
3.后序遍历:先递归遍历左子树和右子树,然后访问根节点。
4.层序遍历:按层次从上到下依次访问每个节点。
三、二叉搜索树1.二叉搜索树的定义:二叉搜索树是一种特殊的二叉树,其中的节点按一定的顺序排列。
2.二叉搜索树的性质:对于任意节点,其左子树中的所有节点都小于该节点,右子树中的所有节点都大于该节点。
3.二叉搜索树的插入操作:将待插入节点与当前节点比较,根据大小关系决定是插入左子树还是右子树。
4.二叉搜索树的删除操作:删除节点时需要考虑其子节点个数,根据不同情况分为三种情况进行处理。
5.二叉搜索树的查找操作:从根节点开始,根据节点值与目标值的大小关系,逐渐向左子树或右子树遍历,直至找到目标值或到达叶子节点。
四、平衡二叉树1.平衡二叉树的定义:平衡二叉树是一种特殊的二叉搜索树,其中的节点满足平衡条件。
2.平衡二叉树的性质:对于任意节点,其左子树和右子树的高度差不超过1。
3.平衡二叉树的实现:通过旋转操作来调整树结构,使其满足平衡条件。
4.平衡二叉树的插入操作:插入节点后,通过旋转操作保持树的平衡性。
5.平衡二叉树的删除操作:删除节点后,通过旋转操作保持树的平衡性。
计算机二级二叉树知识点1.二叉树的定义:二叉树是一种常见的树形结构,其中每个节点最多有两个子节点,分别称为左子节点和右子节点。
二叉树的节点结构通常包括一个数据元素和指向左右子节点的指针。
2.二叉树的性质:(1)二叉树的第i层最多有2^(i-1)个节点。
(2)高度为h的二叉树最多有2^h-1个节点。
(3)对于任意一棵二叉树,如果其叶子节点数为n0,度为2的节点数为n2,则n0=n2+1(4)一棵深度为k且节点总数为n的二叉树,当且仅当其满足2^(k-1)<=n<=2^k-1时,才称为完全二叉树。
3.二叉树的分类:(1)满二叉树:除了叶子节点之外,每个节点都有两个子节点,且所有叶子节点在同一层次上。
(2)完全二叉树:最后一层之前的层都是满的,并且最后一层的节点都靠左排列。
(3)平衡二叉树:左右子树的高度差不超过1的二叉树。
(4)线索二叉树:对于每个节点,除了指向其左右子节点的指针外,还包含指向其在其中一种序列下的前驱节点和后继节点的指针。
4.二叉树的遍历方法:(1)前序遍历:先访问根节点,然后递归地遍历左子树,最后递归地遍历右子树。
(2)中序遍历:先递归地遍历左子树,然后访问根节点,最后递归地遍历右子树。
(3)后序遍历:先递归地遍历左子树,然后递归地遍历右子树,最后访问根节点。
(4)层次遍历:按照从上到下、从左到右的顺序逐层访问每个节点。
5.二叉树:二叉树(Binary Search Tree,BST)是一种特殊的二叉树,它的每个节点的值都大于其左子树中的所有节点值,小于其右子树中的所有节点值。
因此,对于一个二叉树,可以采用中序遍历的方法得到一个有序序列。
二叉树的插入操作:按照二叉树的定义,从根节点开始,将要插入的值与当前节点的值比较,如果小于当前节点的值,则向左子树递归插入,如果大于当前节点的值,则向右子树递归插入,直至找到一个空节点,然后插入新节点。
二叉树的删除操作:删除一个节点需要考虑三种情况:删除节点没有子节点、只有一个子节点、有两个子节点。
关于二叉树的计算总结
一、二叉树的概念
二叉树是指所有非空节点的度数最多为2的有序树,也叫二叉树、排序二叉树或二叉查找树。
由于二叉树的高效能,被广泛应用于信息存储、网络数据传输和多种问题的解决。
二叉树的结构主要可分为根节点,左子树,右子树三部分,每个节点最多可以有两个孩子,也可以没有孩子。
若节点有两个孩子,那么该节点的左孩子一定比该节点的右孩子小。
二、二叉树的性质
1、树种有n个节点,度数最大的节点有n0个:n0≤n;
2、除根节点外,其他节点的度数不超过2;
3、所有的叶子节点都在同一层上;
4、具有n个节点的完全二叉树的深度为log2n+1;
5、满二叉树:所有的叶子节点和度数为2的节点都存在,而且每一层上节点的数目都相等。
三、二叉树的存储形式
1、链式存储:每个结点由几个指针构成,指向其孩子和父亲。
访问任意结点只需按照指针顺序依次查找即可,效率较高,但需要额外的空间来存储指针。
2、顺序存储:根据二叉树的特点,将它转化为顺序存储,将其存入一个数组中,没有孩子的节点用空表示,可以大大减少存储空间,但需要知道节点的存储位置,以便快速访问。
数据结构二叉树知识点总结二叉树是指每个节点最多有两个子节点的树结构。
它是一种重要的数据结构,在算法和程序设计中被广泛应用。
下面是对二叉树的主要知识点进行详细总结。
1.二叉树的基本概念:-树节点:树的基本单元,包含数据项(节点值)和指向其他节点的指针。
-根节点:树的第一个节点。
-叶节点(又称为终端节点):没有子节点的节点。
-子节点:一些节点的下一级节点。
-父节点:一些节点的上一级节点。
-兄弟节点:拥有同一父节点的节点。
-深度:从根节点到当前节点的路径长度。
-高度:从当前节点到最远叶节点的路径长度。
2.二叉树的分类:-严格二叉树:每个节点要么没有子节点,要么有两个子节点。
-完全二叉树:除了最后一层外,其他层的节点数都达到最大,并且最后一层的节点依次从左到右排列。
-满二叉树:每个节点要么没有子节点,要么有两个子节点,并且所有叶节点都在同一层上。
-平衡二叉树:任意节点的两棵子树的高度差不超过13.二叉树的遍历:-前序遍历:根节点->左子树->右子树。
递归实现时,先访问当前节点,然后递归遍历左子树和右子树。
-中序遍历:左子树->根节点->右子树。
递归实现时,先递归遍历左子树,然后访问当前节点,最后递归遍历右子树。
-后序遍历:左子树->右子树->根节点。
递归实现时,先递归遍历左子树,然后递归遍历右子树,最后访问当前节点。
-层序遍历:从上到下,从左到右依次访问每个节点。
使用队列实现。
4.二叉查找树(BST):-二叉查找树是一种有序的二叉树,对于树中的每个节点,其左子树的节点的值都小于当前节点的值,右子树的节点的值都大于当前节点的值。
-插入操作:从根节点开始,递归地比较要插入的值和当前节点的值,根据比较结果向左或向右移动,直到找到插入位置为止。
-查找操作:从根节点开始,递归地比较要查找的值和当前节点的值,根据比较结果向左或向右移动,直到找到目标节点或到叶节点。
-删除操作:有三种情况:-被删除节点是叶节点:直接将其删除。
【二叉树的定义】( binary tree)是 n 个结点的有限集合,该集合或为空集(空二叉树),或由一个根结点与两棵互不相二叉树(右子树的二叉树构成。
交的,称为根结点的左子树左子树、右子树二叉树的特点是:每个结点最多有两棵子树,故二叉树中不存在度大于 2 的结点二叉树是有序的,其次序不能任意颠倒,即使树中的某个结点只有一棵子树,也要区分它是左子树还是右子树二叉树具有以下 5 种基本形态:【特殊的二叉树】在实际应用中,常会用到以下几种特殊的二叉树。
1.斜树右斜树左斜树,所有的结点都只有右子树的二叉树称为右斜树所有的结点都只有左子树的二叉树称为左斜树在斜树中,每层只有一个结点,因此斜树的结点个数与其深度相同2.满二叉树满二叉树。
在一棵二叉树中,若所有的分支结点都存在左子树和右子树,且所有的叶子都在同一层上,则称为满二叉树其特点是:叶子只能出现在最下一层只有度为 0、度为 2 的结点满二叉树在同样深度的二叉树中结点个数、叶结点个数最多。
由于满二叉树的特性可知:满二叉树在同样深度的二叉树中结点个数、叶结点个数最多。
3.完全二叉树对一棵具 n 个结点的二叉树按层序编号,若编号为 i 的结点与同样深度的满二叉树中编号 i 的结点在二叉树中的满二叉树是完全二叉树位置完全相同,则称为完全二叉树完全二叉树,那么显然有:满二叉树是完全二叉树其特点是:叶结点只能出现在最下两层,且最下层的叶结点都集中在二叉树左侧连续的位置若有度为 1 的结点,只可能有一个,且其只有左孩子深度为 k 的完全二叉树在 k -1 层上行一定是满二叉树简单来说,在满二叉树中,从最后一个结点开始,连续去掉任意个的结点,即是一棵完全二叉树【二叉树的性质】1.二叉树二叉树的第 i 层上行最多有个结点2.二叉树中,最多有个结点,最少有 k 个结点在一棵深度为 k 的二叉树推论:深度为 k 且具个结点的二叉树一定是满二叉树,但深度为 k 具有 k 个结点的二叉树不一定是斜树3.具有 n 个结点的二叉树二叉树,其分支数:B=n-1,对于任意一个结点,每度贡献一个分支,即:度为 0 的结点贡献 0 个分支,度为 1 的结点贡献 1 个分支,度为 2 的结点贡献 2 个分支。
学生实验报告学院:软通学院课程名称:数据结构与算法专业班级:软件126姓名:涂伟学号: 0123935学生实验报告(五)一、实验综述1、实验目的及要求目的:1)掌握树与二叉树的基本概念与遍历运算;2)掌握二叉树先序、中序、后序与层序遍历的程序实现;3)了解二叉树的应用。
要求:1)编程:二叉链表类的实现;2)编程:二叉链表先序、中序、后序与层序遍历(应用队列方法)的程序实现。
2、实验仪器、设备或软件设备:PC软件:VC6二、实验过程(编程,调试,运行;请写上源码,要求要有注释)1.编程:二叉链表类的实现代码:#include<iostream>#include<stdio.h>#include<string.h>using namespace std;//二叉树节点typedef struct BNode{char data;BNode* LChild;BNode* RChild;}*BTNode;//树类class BTree{private:BNode *root;BNode**Seq;int length;public :BTree(){}~BTree(){}//建立二叉树void BTree_Init(){cout<<"输入节点数:"<<endl;int num;length=1;cin>>num;cout<<"请输入二叉树的节点序列(按完全二叉树顺序空节点用,表示 # 结束):";char ch;for(inti=1;i<num;i++)length*=2;Seq=newBNode*[length];for(i=1;i<length;i++)Seq[i]=NULL;int pos=1;fflush(stdin);while(ch!='#'){BNode* temp=new BNode;temp->RChild=temp->LChil d=NULL;ch=(char)getchar();if(((ch>='a')&&(ch<='z') )||((ch>='A')&&(ch<='Z') )){temp->data=(char)(ch);Seq[pos]=temp;}else{temp->data='^';Seq[pos]=temp;}if(1==pos){root=temp;}else{if(0==pos%2)Seq[pos/2]-> LChild=temp;elseSeq[pos/2]->RChild=temp;}pos++;}}//返回根节点BNode* Get_root(){return root;}//先序遍历二叉树void Read_First(BNode *Root){if(Root!=NULL){cout<<Root->data<<" ";Read_First(Root->LChild) ;Read_First(Root->RChild);}}//中序遍历二叉树void Read_Middle(BNode *Root){if(Root!=NULL){Read_Middle(Root->LChild );cout<<Root->data<<" ";Read_Middle(Root->RChild );}}//后序遍历二叉树void Read_End(BNode *Root){if(Root!=NULL){Read_End(Root->LChild);Read_End(Root->RChild);cout<<Root->data<<" ";}}};void main(){BTree root1;root1.BTree_Init();cout<<"先序遍历:"<<endl;root1.Read_First(root1.G et_root());cout<<endl;cout<<"中序遍历:root1.Read_Middle(root1.Get_root());cout<<endl;cout<<"后序遍历:"<<endl;root1.Read_End(root1.Get_root());}运行截图:2.编程:二叉链表先序、中序、后序与层序遍历(应用队列方法)的程序实现#include<iostream>#include<stdio.h>#include<string.h>using namespace std;//二叉树节点typedef struct BNode{char data;BNode* LChild;BNode* RChild;}*BTNode;//树类class BTree{private:BNode *root;BNode**Seq;int length;public :BTree(){}~BTree(){}//建立二叉树void BTree_Init(){cout<<"输入节点数:"<<endl;int num;length=1;cin>>num;cout<<"请输入二叉树的节点序列(按完全二叉树顺序空节点用,表示 # 结束):";char ch;for(int i=1;i<num;i++)length*=2;Seq=new BNode*[length];for(i=1;i<length;i++)Seq[i]=NULL;int pos=1;fflush(stdin);while(ch!='#'){BNode* temp=new BNode;temp->RChild=temp->LChild=NULL;ch=(char)getchar();if(((ch>='a')&&(ch<='z'))||((ch>='A')&&(ch<='Z'))) {temp->data=(char)(ch);Seq[pos]=temp;}else{temp->data='^';Seq[pos]=temp;}if(1==pos){root=temp;}else{if(0==pos%2)Seq[pos/2]->LChild=temp;else Seq[pos/2]->RChild=temp;}pos++;}}//返回根节点BNode* Get_root(){return root;}//先序遍历二叉树void Read_First(BNode *Root){if(Root!=NULL){cout<<Root->data<<" ";Read_First(Root->LChild);Read_First(Root->RChild);}}//中序遍历二叉树void Read_Middle(BNode *Root){if(Root!=NULL){Read_Middle(Root->LChild);cout<<Root->data<<" ";Read_Middle(Root->RChild); }}//后序遍历二叉树void Read_End(BNode *Root){if(Root!=NULL){Read_End(Root->LChild);Read_End(Root->RChild);cout<<Root->data<<" ";}}void Read(){int i=1;while(Seq[i]){cout<<Seq[i]->data;i++;}}};void main(){BTree root1;root1.BTree_Init();cout<<"层序遍历:"<<endl;root1.Read();}运行截图:三、结论1、实验总结(碰到了什么问题,如何解决?)构造二叉树一开始试了两下都没成功然后以ftp里的参考代码为模板写出来的二叉树很难进行递归遍历,于是将结构体放到了类外部,然后就好了。
2、分析讨论(个人体会和心得)四、指导教师评语及成绩:成绩:指导教师签名:严军勇批阅日期:2013年11月17日。