欢迎来到天天文库
浏览记录
ID:14138621
大小:168.50 KB
页数:19页
时间:2018-07-26
《数据结构二叉树前中后序非递归遍历》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构实验报告二〇一二年数据结构《实验2》实验报告实验项目2:二叉树前序、中序非递归遍历学 号姓 名课程号实验地点指导教师时间评语:按时完成实验;实验内容和过程记录完整;回答问题完整、正确;实验报告的撰写认真、格式符合要求;无抄袭的行为。成绩教师签字二叉树中序、后序非递归遍历1、预习要求:二叉树结构定义。2、实验目的:(1)了解二叉树结构遍历概念;(2)理解二叉树二种不同遍历过程;(3)掌握二叉树遍历算法程序。3、实验内容及要求:(1)建立包含10个结点的二叉树(树结构和数据元素的值由自己设定);(2)完
2、成二叉树非递归遍历程序;(3)给出程序和每种遍历程序的结果。4、实验设备(环境)及要求硬件:支持IntelPentiumⅡ及其以上CPU,内存128MB以上、硬盘1GB以上容量的微机。软件:配有Windows98/2000/XP操作系统,安装VisualC++。5、实验时间:10学时6、该文档的文件名不要修改,存入<学号><姓名>命名的文件夹中7、该表中的数据只需填空,已有内容不要修改实验结果(运行结果界面及源程序,运行结果界面放在前面):依次是前序,中序,后序遍历的截屏数据结构实验报告二〇一二年数据结构实验报
3、告二〇一二年#defineSTUDENTEType#include#include#include#include#include//二叉树链式结构定义structSTUDENT{charname[10];charnumber[12];charplace[10];charsex[3];intage;};structBinaryTreeNode{ETypedata;BinaryTreeNode*LChild;Bi
4、naryTreeNode*RChild;};typedefBinaryTreeNodeBinaryTree;//堆栈结构定义structSType{BinaryTreeNode*ptr;boolstatus;数据结构实验报告二〇一二年};structStack{SType*element;inttop;intMaxsize;};structNode_Ptr{BinaryTreeNode*ptr;};voidDigitalToString(charstr[],intn){chartemp;chark=1;inti
5、=0;while(n&&i<80){k=n%10+48;n=n/10;str[i]=k;i++;}str[i]=' ';intlen=strlen(str);for(i=0;i6、pe[S.Maxsize];S.top=-1;}boolIsEmpty(Stack&S){//判断堆栈是否为空if(S.top==-1)returntrue;数据结构实验报告二〇一二年returnfalse;}boolIsFull(Stack&S){//判断堆栈是否为满if(S.top>=S.Maxsize-1)returntrue;elsereturnfalse;}boolGetTop(Stack&S,SType&result){//返回堆栈S中栈顶元素if(IsEmpty(S))returnfalse;re7、sult=S.element[S.top];returntrue;}boolPop(Stack&S,SType&result){//将S栈顶的值取至result中,返回出栈后的状态if(IsEmpty(S))returnfalse;result.ptr=S.element[S.top].ptr;result.status=S.element[S.top].status;S.top--;returntrue;}boolPush(Stack&S,SType&result){//result进s栈,返回进栈后的状态值8、if(IsFull(S))returnfalse;S.top++;S.element[S.top]=result;//S.element[S.top].status=result.status;returntrue;}//构造一棵二叉树BinaryTree*MakeNode(EType&x){//构造节点BinaryTree*ptr;ptr=newBinaryTreeNode;if(!
6、pe[S.Maxsize];S.top=-1;}boolIsEmpty(Stack&S){//判断堆栈是否为空if(S.top==-1)returntrue;数据结构实验报告二〇一二年returnfalse;}boolIsFull(Stack&S){//判断堆栈是否为满if(S.top>=S.Maxsize-1)returntrue;elsereturnfalse;}boolGetTop(Stack&S,SType&result){//返回堆栈S中栈顶元素if(IsEmpty(S))returnfalse;re
7、sult=S.element[S.top];returntrue;}boolPop(Stack&S,SType&result){//将S栈顶的值取至result中,返回出栈后的状态if(IsEmpty(S))returnfalse;result.ptr=S.element[S.top].ptr;result.status=S.element[S.top].status;S.top--;returntrue;}boolPush(Stack&S,SType&result){//result进s栈,返回进栈后的状态值
8、if(IsFull(S))returnfalse;S.top++;S.element[S.top]=result;//S.element[S.top].status=result.status;returntrue;}//构造一棵二叉树BinaryTree*MakeNode(EType&x){//构造节点BinaryTree*ptr;ptr=newBinaryTreeNode;if(!
此文档下载收益归作者所有