欢迎来到天天文库
浏览记录
ID:27649876
大小:148.00 KB
页数:11页
时间:2018-12-05
《二叉树的遍历(先序遍历中序遍历后序遍历全)实验报告》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、实验目的编写一个程序,实现二叉树的先序遍历,中序遍历,后序遍历。实验内容编程序并上机调试运行。编写一个程序,实现二叉树的先序遍历,中序遍历,后序遍历。编写程序#include#includetypedefstructBiTNode{chardata;structBiTNode*lchild,*rchild;}BiTNode,*BiTree;/•丄••I*•I**1^•丄•*1^•!>•!>*1*•!>*1^•!*•!>•!>ff*T*///按先序次序构建的二义树链表voidCreatBiTree(BiTree*T)
2、{charch;if((ch=getchar())==,')*T=NULL;else*T=(BiTNode*)malloc(sizeof(BiTNode));if(!(*T))exit(l);(*T)->data=ch;CreatBiTree(&(*T)->lchild);CreatBiTree(&(*T)->rchild);/«£«*1^«£«<1^«£«*1^*£*%£*%£*%£*%£*%£*%£*/I#7*#T^#T^^T%#Tm^7^#T>^T%#T%^7^#T%#7^#T>^7^#
3、%^
4、7^#T^/先序遍历--递归算法voidPreOrderTraverse(BiTreeT){if(T)printf("%c",T-〉data);PreOrderTraverse(T->lchild);PreOrderTraverse(T->rchiId);}}5、//中序遍历--递归算法voidInOrderTraverse(BiTreeT){if(T){InOrderTraverse(T-〉lchild);printf("%c",T-〉data);lnOrderTraverse(T->rchild);}}/«£««£««£««£««£««£«*1^«£«<1^«£«*1^/I#7*^7^/后序遍历--速归算法voidPostOrderTraverse(BiTreeT){if(T){PostOrderTraverse(T->lchild);Post6、OrderTraverse(T->rchild);printf("%c",T-〉data);}//main函数voidmain()BiTreeT;printf("请按先序次序输入二叉树中结点的值,空格字符表示空树An1');CreatBiTree(&T);printf(,,M);printf("先序遍历为An11);PreOrderTraverse(T);printf(•’n);printf("中序遍历为:n);InOrderTraverse(T);printf(nn);printf("后序遍历力:n);PostOrderT7、raverse(T);printf(n");getchar();运行程序:^按先序次序输入二叉树中结点的值,空格字符表示空树=ABCDEGF结果分析:按先序输入的二叉树为ABCAADEAGAAFAAA(A为空格)该二义树両成树形为:E其先序遍历为:ABCDEGF其屮序遍历为:CBEGDFA其后序遍历为:CGEFDBA可以看出运行结果是正确的。程序解析:1.首先是将程序的开头写好,因为后面要用到malloc,所以要冇stdlib.h的声明。然建立指针表structBiTNode,定义其数掘类型为char型,指针指向lchild,rchild,下一8、个指针为BiTNode./***********^2.^^^!^**************/#include#includetypedefstructBiTNode9、eof(BiTNode));if(?(*T))exit(1);(*T)->data=ch;Cr
5、//中序遍历--递归算法voidInOrderTraverse(BiTreeT){if(T){InOrderTraverse(T-〉lchild);printf("%c",T-〉data);lnOrderTraverse(T->rchild);}}/«£««£««£««£««£««£«*1^«£«<1^«£«*1^/I#7*^7^/后序遍历--速归算法voidPostOrderTraverse(BiTreeT){if(T){PostOrderTraverse(T->lchild);Post
6、OrderTraverse(T->rchild);printf("%c",T-〉data);}//main函数voidmain()BiTreeT;printf("请按先序次序输入二叉树中结点的值,空格字符表示空树An1');CreatBiTree(&T);printf(,,M);printf("先序遍历为An11);PreOrderTraverse(T);printf(•’n);printf("中序遍历为:n);InOrderTraverse(T);printf(nn);printf("后序遍历力:n);PostOrderT
7、raverse(T);printf(n");getchar();运行程序:^按先序次序输入二叉树中结点的值,空格字符表示空树=ABCDEGF结果分析:按先序输入的二叉树为ABCAADEAGAAFAAA(A为空格)该二义树両成树形为:E其先序遍历为:ABCDEGF其屮序遍历为:CBEGDFA其后序遍历为:CGEFDBA可以看出运行结果是正确的。程序解析:1.首先是将程序的开头写好,因为后面要用到malloc,所以要冇stdlib.h的声明。然建立指针表structBiTNode,定义其数掘类型为char型,指针指向lchild,rchild,下一
8、个指针为BiTNode./***********^2.^^^!^**************/#include#includetypedefstructBiTNode9、eof(BiTNode));if(?(*T))exit(1);(*T)->data=ch;Cr
9、eof(BiTNode));if(?(*T))exit(1);(*T)->data=ch;Cr
此文档下载收益归作者所有