当前位置:首页 >> 数学 >>

实验七.二叉树的先序遍历(答案)


实验七、 二叉树及其先序遍历
一、 实验目的: 1.明确了解二叉树的链表存储结构。 2.熟练掌握二叉树的先序遍历算法。 二、实验内容: 1.树型结构是一种非常重要的非线性结构。树在客观世界是广泛存在的,在计算机领 域里也得到了广泛的应用。在编译程序里,也可用树来表示源程序的语法结构,在数据库系 统中,数形结构也是信息的重要组织形式。 2.节点的有限集合(N 大于等于 0) 。在一棵非空数里: (1) 、有且仅有一个特定的根 节点; (2) 、当 N 大于 1 时,其余结点可分为 M(M 大于 0)个互不相交的子集,其中每一 个集合又是一棵树,并且称为根的子树。树的定义是以递归形式给出的。 3.二叉树是另一种树形结构。它的特点是每个结点最多有两棵子树,并且,二叉 树的子树有左右之分,其次序不能颠倒。 4.二叉树的结点 存储结果示意图如下: 左指针域 数据域 右指针域

三、实验步骤 1.理解实验原理,读懂实验参考程序。 2. (1)在纸上画出一棵二叉树。

A B C D G E F

(2) 输入各个结点的数据。 (3) 验证结果的正确性。 四、程序流程图 五、程序代码 #include "stdio.h" #include "stdlib.h" #define Max 50 typedef char elemtype; /*预先定义结点数目最大为 50*/

typedef struct btnode { elemtype data; struct btnode *lchild, *rchild; }bitnode, *bitree;

/*自定义结点类型*/

bitree CreateBiTree() { /*先序遍历生成二叉树的递归算法*/ bitree t; /*定义二叉树 t*/ char ch; scanf("%c",&ch); if( ch=='.' ) t=NULL; else { t=( bitnode *)malloc(sizeof(bitnode) ); /*生成新的结点*/ t->data=ch; /*对数据域赋值*/ t->lchild=CreateBiTree(); /*递归构造左子树*/ t->rchild=CreateBiTree(); /*递归构造右子树*/ } return t; }/*CreateBiTree*/ void PreOrderTraverse(bitree bt) { /*先序遍历二叉树递归算法*/ if (bt!=NULL) { printf("%c",bt->data); /*访问根结点*/ PreOrderTraverse(bt->lchild); /*先序遍历左子树*/ PreOrderTraverse(bt->rchild); /*先序遍历右子树*/ } }/*PreOrderTraverse*/

void main() { bitree bt1; printf("creatbitree:\n"); bt1=CreateBiTree(); printf("preorder:\n"); PreOrderTraverse(bt1); }/*main*/


相关文章:
数据结构实验7:二叉树子系统
验证性实验 7:二叉树子系统班级学号 BX100420 姓名 施程程 成绩 1.实验目的 ...* 3---先 序遍历 *"); * 4---中 序遍历 *"); * 5---后 序遍历 ...
验证性实验7: 二叉树子系统
验证性实验7: 二叉树子系统_教育学_高等教育_教育专区。验证性实验7: 二叉树...建立二叉树 * * 2 凹入显示 * * 3 先序遍历 * * 4 中序遍历 * * 5...
7.2二叉树相似问题
7.2二叉树相似问题_计算机软件及应用_IT/计算机_专业资料。数据结构实验报告实验...();//创建二叉树 B b.PretraBitree();// 先序遍历二叉树 B Like(a....
数据结构实验报告7
数据结构实验报告7 - 1.二叉树的二叉链表存储结构 2.二叉树的先序递归算法建树 3.二叉树的中序非递归遍历算法
BX100436周玲实验7:二叉树子系统
BX100436周玲实验7:二叉树子系统 - 验证性实验 7:二叉树子系统 班级学号 BX100436 姓名 周玲 成绩 1.实验目的 (1)掌握二叉树的特点及其存储的方式。 (2)掌握...
数据结构课程实验报告_实验7优先队列
数据结构课程实验报告_实验7优先队列_实习总结_总结/汇报_实用文档。逆波兰表达式...基本要求 使用二叉树来实现。 实现提示 利用二叉树序遍历来实现表达式的转换,...
更多相关标签: