欢迎来到天天文库
浏览记录
ID:42655994
大小:47.50 KB
页数:5页
时间:2019-09-19
《二叉树中序遍历的非递归算法实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、试验五课程名称实验室名称实验名称二叉树中序遍历的非递归算法实现指导教师成绩1、实验目的二叉树中序遍历的非递归算法实现2、实验原理和内容二叉树中序遍历的非递归算法实现3、实验步骤1.链式存储结构的定义和栈结构的定义2.编写进栈函数push和出栈函数pop实现中序遍历过程中需存储的数的进栈和出栈过程3.创建一棵二叉树4.对该二叉树进行中序遍历,采用非递归算法实现1、程序及运行结果(或实验数据记录及分析)#include#includetypedefchardatatype;//*链式存储结
2、构*//typedefstructnode{datatypedata;structnode*lchild,*rchild;}bintnode;typedefbintnode*bintree;typedefstructstack{/*栈结构定义*/bintreedata[100];inttop;}seqstack;voidpush(seqstack*s,bintreet){s->data[s->top]=t;s->top++;}bintreepop(seqstack*s){if(s->top!=0){s->top--;ret
3、urn(s->data[s->top]);}elsereturnNULL;}voidcreatebintree(bintree*t){charch;if((ch=getchar())=='')*t=NULL;else{*t=(bintnode*)malloc(sizeof(bintnode));(*t)->data=ch;createbintree(&(*t)->lchild);createbintree(&(*t)->rchild);}}voidinorder1(bintreet){seqstacks;s.top=0;w
4、hile((t!=NULL)
5、
6、(s.top!=0)){while(t){push(&s,t);t=t->lchild;}if(s.top!=0){t=pop(&s);printf("%c",t->data);t=t->rchild;}}}main(){bintreeroot;printf("inputthetreeaspreorder:");createbintree(&root);printf("中序遍历结果是:");inorder1(root);}在屏幕上输出的结果:
此文档下载收益归作者所有