二叉树的建立与遍历及二叉树的线索化及线索化遍历.doc

二叉树的建立与遍历及二叉树的线索化及线索化遍历.doc

ID:56730263

大小:258.50 KB

页数:11页

时间:2020-07-06

二叉树的建立与遍历及二叉树的线索化及线索化遍历.doc_第1页
二叉树的建立与遍历及二叉树的线索化及线索化遍历.doc_第2页
二叉树的建立与遍历及二叉树的线索化及线索化遍历.doc_第3页
二叉树的建立与遍历及二叉树的线索化及线索化遍历.doc_第4页
二叉树的建立与遍历及二叉树的线索化及线索化遍历.doc_第5页
资源描述:

《二叉树的建立与遍历及二叉树的线索化及线索化遍历.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、.理工大学信息工程与自动化学院学生实验报告(2011—2012学年第1学期)课程名称:数据结构开课实验室:信自楼4422011年11月06日年级、专业、班学号成绩实验项目名称二叉树的建立与遍历及二叉树的线索化及线索化遍历指导教师教师评语教师签名:年月日一、程序功能:(1).线索二叉树的主要函数设置如下:1.树的存储的类型为:typedefstructbithrnode{chardata;structbithrnode*lchild,*rchild;intltag,rtag;}bithrnode,*bithrtree;2.主程序:bithrtr

2、eeT,p,T1;intk;Do{switch(k){case1:creat(T);--------建立二叉树T1=copy(T);---------复制建立后的二叉树case2:T=copy(T1);---------复制建立后的二叉树PreOrderThreading(p,T);---------先序线索化first(p);--------------先序遍历case3:T=copy(T1);---------复制建立后的二叉树InOrderThreading(p,T);----------中序线索化mid(p);------------

3、---中序遍历case4:T=copy(T1);---------复制建立后的二叉树..backorderThreading(p,T);-------------后序线索化last(p);--------------后序遍历}}while(k!=0);3.子程序:bithrtreecreat(bithrtree&T)--------建立二叉树StatusPreOrderThreading(bithrtree&thrt,bithrtreeT)---------先序线索化{voidPreThreading(bithrtreep)}--------

4、-先序线索化子函数StatusInOrderThreading(bithrtree&thrt,bithrtreeT)----------中序线索化{voidinthreading(bithrtree&p)}----------中序线索化子函数StatusbackorderThreading(bithrtree&thrt,bithrtreeT)-------------后序线索化{voidbackthreading(bithrtreep)}-------------后序线索化子函数voidfirst(bithrtreethrt)--------

5、------先序遍历voidmid(bithrtreethrt)---------------中序遍历voidlast(bithrtreet)--------------后序遍历bithrtreecopy(bithrtree&r)---------复制建立后的二叉树bithrtreecreat(bithrtree&T)(2).程序代码如下:#include#include#include#include#defineOVERFLOW-2#defineOK1#defi

6、neerror0typedefintStatus;typedefenumpointertag{link=0,thread=1};//link==0;指针thread==1;线索typedefstructbithrnode{chardata;structbithrnode*lchild,*rchild;//左右孩子指针intltag,rtag;}bithrnode,*bithrtree;bithrtreepre;bithrtreecreat(bithrtree&T)//构造二叉树{charch;fflush(stdin);..scanf("%c

7、",&ch);if(ch==''

8、

9、ch=='#')T=NULL;else{if(!(T=(bithrnode*)malloc(sizeof(bithrnode))))returnerror;T->data=ch;T->ltag=0;T->rtag=0;printf("输入父结点%c的左孩子:",ch);T->lchild=creat(T->lchild);printf("输入父结点%c的右孩子:",ch);T->rchild=creat(T->rchild);}returnT;}voidPreThreading(bithrtreep)//先

10、序线索化{if(p){if(!p->lchild){p->ltag=thread;p->lchild=pre;}//前驱线索if(!pre->rchild){pre

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。