1 / 12
文档名称:

后序遍历二叉树的非递归算法.doc

格式:doc   大小:46KB   页数:12页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

后序遍历二叉树的非递归算法.doc

上传人:书犹药也 2020/3/18 文件大小:46 KB

下载得到文件列表

后序遍历二叉树的非递归算法.doc

文档介绍

文档介绍:请根据用户输入的“扩展的先序遍历序列”(用小圆点表示空子树),建立以二叉链表方式存储的二叉树,然后写出后序遍历该二叉树的非递归算法。方法一:#include<>#include<>#defineMAX_TREE_SIZE100typedefstructBiTNode{ chardata; structBiTNode*lchild; structBiTNode*rchild;}BiTNode,*BiTree;//函数声明voidPrint(BiTree*root);voidSelection(intsel,BiTree*root);voidReadExPreOrder(BiTree*root);voidPrintExPreOrder(BiTreeroot);voidPostOrderTraverse(BiTreeT);//主函数voidmain() { BiTreeroot=NULL;//初始化根结点 Print(&root); while(true) { printf("\nPressentertocontinue........."); getchar(); getchar(); system("cls"); Print(&root); }}voidPrint(BiTree*root) {//提示 intsel; printf("使用说明:本程序可实现二叉链表方式存储的二叉树,输入为扩展先序遍历序列.\n"); printf("---------------------\n"); printf(".\n"); printf(".\n"); printf(".\n"); printf(".\n"); printf("---------------------\n"); printf("请选择你要的操作:"); scanf("%d",&sel); getchar(); Selection(sel,root);}voidSelection(intsel,BiTree*root) {//根据用户输入决定下一步骤 switch(sel){ case1:ReadExPreOrder(root); break; case2:PrintExPreOrder(*root); break; case3:PostOrderTraverse(*root); break; default:exit(0); }}voidReadExPreOrder(BiTree*root) {//先序遍历二叉树,root为指向二叉树(或某一子树)根结点的指针 charch; ch=getchar(); if(ch=='.') *root=NULL; else{ (*root)=(BiTree)malloc(sizeof(BiTNode)); (*root)->data=ch; ReadExPreOrder(&((*root)->lchild)); ReadExPreOrder(&((*root)->rchild)); }}voidPrintExPreOrder(BiTreeroot) { charch; if(root!=NULL) { ch=root->data; printf("%c",ch); PrintExPreOrder(root->lchild); PrintExPreOrder(root->rchild); } else printf(".");}voidPostOrderTraverse(BiTreeT){ BiTreestack[MAX_TREE_SIZE],p; inttag[MAX_TREE_SIZE],top=0; p=T; while(p||top!=0) { while(p){ top++; stack[top]=p; tag[top]=0; p=p->lchild;//从根开始,左结点依次入栈} if(top>0){ if(tag[top]==1){//表示是从该结点的右子树返回,则访问该结//点 p=stack[top]; printf("%c",p->data); top--; p=NULL;//将p指向NULL,则下次进入while循环时,不做左子//树入栈操作} else{//表明是从该结点左子树返回,应继续访问其右子树 p=stack[top]; if(top>0){ p=p->rchild; tag[top]=1;//表明该结点的右子树已访问} }//endofelse }//endofif }//endofwhile}方法二(顺序栈):#include<ios

最近更新

工业工程IE毕业设计超声波雾化器的生产计划与.. 37页

医疗机构管理条例专题知识讲座 53页

2019-2020学年实验幼儿园中班(下册)期末考试试.. 7页

2019-2020年幼儿园中班保育员四级业务水平考试.. 11页

2019-2020年幼儿园学前班保育员下学期考试试题.. 12页

2019-2020年度幼儿园中班保育员五级职业水平考.. 11页

2019-2020年度幼儿园保育员职业技能考试试题试.. 11页

2019年一级(高级技师)保育员能力测试试题A卷-.. 5页

2019年三年级数学个人教学工作总结 3页

2019年五级(初级)保育员全真模拟考试试卷D卷-.. 5页

2019年四级(中级)保育员能力提升试卷B卷-附解.. 5页

2019年实验幼儿园大班下学期期中考试试题-含答.. 7页

2019年幼儿园中班保育员专业能力考试试题试卷.. 11页

2019年幼儿园保育员三级能力考试试卷B卷-含答.. 10页

2019年幼儿园保育员四级专业能力考试试题(I卷.. 11页

2019年幼儿园小班保育员五级业务技能考试试题.. 12页

2019年重点小学三年级数学上学期月考试卷D卷-.. 4页

2019年重点小学二年级语文【上册】期末考试试.. 4页

2019年重点小学二年级语文下学期强化训练试题.. 4页

体彩店创业计划书 7页

厨师安全培训考试试卷 3页

康复医学科康复诊疗规范 8页

工厂急救箱方案 3页

水泥土换填施工方案 12页

年产10万吨环保新材料项目环评报告书 542页

低温液体泵工艺及安全操作规程 3页

黄志光-有机废气深冷处理技术 12页

环氧化丁腈橡胶的制备及其共混改性研究 67页

DIN3123-德国套筒接杆标准 4页