《二叉树各种基本运算与遍历算法.docx》由会员分享,可在线阅读,更多相关《二叉树各种基本运算与遍历算法.docx(29页珍藏版)》请在优知文库上搜索。
1、数据结构及算法试验报告试殴名称,二叉树各种基本运算及遍历算法班级:10软工转本1姓名:季佳宾学孰类型:综合试验地点:傅琴404日.期:一、试验目的:1 .理解二叉树的概念及其基本运算算法(这些算法包括二叉树的创建、节点访问、求二叉树的深度以及二叉树的先根遍历、中根遍历、后根遍历算法)2 .用c语言实现二叉树的基本运算算法和遍历算法。3 .调试程序,编译运行并用数据测试程序4 .熟识C语言编程二、试验环境:1.机一台(带有6O软件)三、试验内容和要求:1、用C语言实现二叉树的基木运算算法(包括二叉树的创建、节点访问、求二叉树的深度):2、JTjc语言实现二叉树的三种遍历算法(先根遍历、中根遍历、
2、后根遍历),其中中根遍历算法用递归和非递归两种方式实现,加深理解栈在非递归实现中的应用:3、调试程序,编译运行并用数据测试程序四、试验步骤:(对试验步源的说明应当能馅保证依据该说明即可重复完整的试验内容,得到正确结果)k对实现二叉树的基本运算算法以及遍历算法做分析,绘制算法流程图1设计二叉树的节点表示方法2)设计和实现相关算法函数2、在6.O环境下编译实现代码1)编辑源程序,达到调试编译运行的目的2)利用数据进行测试验证五、试验结果及分析(含程序、数据记录及分析和试验总结等试疆7.1实现二叉树各种基本运算的算法,代码如下所示:OO100);(*)(*,*;10:j;C0,)O(,C1;,);,
3、1,2;(*)(0);:O(k)(-:2-;)*(j;*(*x)*p;O(b;O);OP;(:*(*p)*(*P);(*b)O(0);O);O);(?(1):(1);)(*b)O(仁);()(co;(;(;();)(*b)*P;O;O(I:1;O:;(;1;)(:1;)on;(i)O;(i);(*b)(12:O0;()1;(1(;2(;(12+1):)(*b)(12:O0;()10):2(;(12);*b,*p,*,*;(b,*A(B(H()()*);(n);(D输出二叉树:)(b)(n);(2)卬结点点);(b,1.1.,);0(P):0(左孩子为);(无左孩子:(P);(右孩子为;(无右孩
4、子);)(W);(A(3)二叉树b的深度n(b);(4)二叉树b的宽度n(b);(5)二叉树b的结点个数n(b);(6)二叉树b的叶子结点个数n(b):O)试验结果I试验7.2实现二叉树各种遍历算法,代码如下所示I;*;(*)(,:10;UJ;Co()(O(,C1;,;,2;(*)(0);;O(k)-;2-;)j;C);()();O):()(,);O);D*);(*b)O(O;O);O);1(*b)p;(;*,;1:t;01;:口“)(0):O;I9口*1:-1.)(;9(:)(;)(k);(*b)O(O);。);O);)K*b);1;*O;01;9O;1;*9;0;*,;1;)(O)(*,*
5、p;1;O(0-1)(O(.,;)0-1)(;,;)(k);(*b)O(O);O);厂;)K*b)p;:1;*1:;(O);0;1;1;();;P;1;OO(,;)1;(1)(;(););(n)o:4*O:o*:*(q*):3.):(1)(*);(1);;)();(1);:)Cn);b;(bA(B(H(O)(O)*);C二叉树b:*);(b);Cn);(层次历序列:);(b);(W);(先序遑历序列:);(n*);递归算法:.);(b);(n9;C非递归算法hKb);(n*);非递归算法2:与;2(b);CW);(中序遍历序列:n*);C递归算法:);(b);(W);(“非递归算法1:);Kb
6、);Cn*);(“非递归算法备);2(b);(W);(“后序遍历序列:n);C递归算法:);(b);(W);(非递归算法h1(b):CW);(“非递归算法2:2(b);(n*);-X1Wb三ABD,EHJ,K1.zM,CF,G层次遍历序列:Abcdefghijk1.mn无序遍历序列:递归算迭!ABDEHJK1.HNCFG1.韭谦归篡源:Abdehjk1.mncfgi非递归算法2aAbdehjk1.hncfgi底遍历序列:博归JS法:DBJH1.KHNEAFCG1.潺归篡法1:Dbjh1.kmneafcgi递归算法2,Dbjh1.kmneafcgi非递归Dj1.nmkhebfigcaDj1.nmkhebfigcaDJ1.NHKHEBFIGCfi学生用户名密码