《数据结构实验报告 实验三 二叉树的建立与遍历》由会员分享,可在线阅读,更多相关《数据结构实验报告 实验三 二叉树的建立与遍历(3页珍藏版)》请在金锄头文库上搜索。
1、-1-昆明理工大学信息工程与自动化学院学生实验报告( 201 201 学年 第 一 学期 )课程名称:数据结构 开课实验室: 年 月 日年级、专业、班学号 姓名 成绩实验项目名称 二叉树的建立与遍历及二叉树中序线索化及线索化遍历指导教师 教师评语教师签名:年 月 日一.实验内容:二叉树的建立与遍历,其中遍历有前序遍历,中序遍历和后序遍历。以及二叉树中序线索化及线索化遍历。二.实验目的:学会二叉树二叉链表非线性存储结构上实现的各种算法。三.主要程序代码分析:bitree *Creatree() /建立二叉树char ch;int front,rear; /队头和队尾指针bitree *root,
2、*s;rt=NULL; /置空二叉树front=1; rear=0; /置空队列printf(please enter the data,and end up with # !n);-2-ch=getchar(); /输入第一个字符 while (ch!=#) /输入#时结束s=NULL;if(ch!=) /表示虚结点,不是虚结点时建立新结点s=(bitree*)malloc(sizeof(bitree);s-data=ch;s-lc=NULL;s-rc=NULL;rear+;Qrear=s; /将虚结点指针 NULL 或新结点地址入队if(rear=1) root=s; /输入的第一个结点为
3、根结点elseif(s&Qfront) /孩子和双亲结点均不是虚结点if(rear%2=0) Qfront-lc=s;/rear 为偶数,是左孩子elseQfront-rc=s; /新结点是右孩子if(rear%2=1) front+;ch=getchar(); /输入下一个字符return root; /返回根指针四.程序运行结果:-3-五.实验总结:二叉树是树形结构的一个重要类型,许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般树也能转化为二叉树,而且二叉树存储结构和算法都较为简单。通过这次上机,我对二叉树的建立和遍历有了更进一步的认识,二叉树的定义是递归的,一棵非空的二叉树是由根节点,左子树,右子树这三个基本部分组成的,二叉树的遍历分为前序遍历,中序遍历和后序遍历,在这三个递归算法中,递归的终止条件是二叉树为空。在今后的学习中还要不断对二叉树的熟悉,要能够熟练掌握二叉树。