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

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


实验七、 二叉树及其先序遍历
一、 实验目的: 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*/


赞助商链接
相关文章:
二叉树的遍历(先序遍历、中序遍历、后序遍历全)实验报告
二叉树的遍历(先序遍历、中序遍历、后序遍历全)实验报告_工学_高等教育_教育专区。二叉树的遍历,递归法 实验目的编写一个程序,实现二叉树的先序遍历,中序遍历,...
实验七 二叉树及其应用
实验七 二叉树及其应用 【实验目的 实验目的】 实验目的 1、学会二叉树节点的定义。 2、知道按照需求创建合适的二叉树。 3、学会二叉树的各种遍历 先序 中序 后...
实验七遍历二叉树和线索二叉树
实验七 遍历二叉树和线索二叉树 一、 实验目的 1. 熟悉二叉树的存储和实现方法...} /*主程序—创建二叉树,并输出相应的先序,中序,后序序列*/ void main()...
7-1实验七报告(二叉树的相关操作)
实验器材(软件) :Computer,Windows OS,VC++ 实验过程记录: 1、二叉树的遍历及其应用 (1) 请实现二叉树的创建 (2) 并对创建好的二叉树分别进行先序、中序、...
实验七 二叉树验证实验报告
实验七 二叉树验证实验报告_计算机软件及应用_IT/计算机_专业资料。特殊线性表 ...(root->rchild); //前序递归遍历 bt 的右子树 } } //中序遍历 特殊...
实验七 树与二叉树
实验七 树与二叉树_工学_高等教育_教育专区。数据结构 实验指导 ...以二叉链表作为二叉树的存储结构,试利用栈的基本操作写出先序遍历的非递归形式 ...
二叉树的遍历实验报告
基于二叉树的递归定义, 以及遍历规则, 本次实验也采用的是先序遍历的规则进行建树 的以及用递归的方式进行二叉树的遍历。 二、系统总框图 主程序 建立二叉树 ...
实验七:二叉树的基本操作
存储结构 3、掌握二叉树的基本操作(如左结点插入、右结点插入、左子树删除、右子树删除操作) 二、【实验内容】 1、实现二叉树的插入操作,并利用先序遍历的实现...
实验六 二叉树实验报告(1)
一、实验目的: (1)掌握二叉树的定义和存储表示,学会建立一棵特定二叉树的方法; (2)掌握二叉树的遍历算法(先序、中序、后序遍历算法)的思想,并学会 遍历算法...
实验报告二叉树
实验报告二叉树_调查/报告_表格/模板_实用文档。实验报告 课程名称 题目 数据...(1)创建二叉树链表。 (2)前序遍历。 (3)中序遍历。 (4)后序遍历。 七...
更多相关标签: