欢迎来到天天文库
浏览记录
ID:35972250
大小:180.80 KB
页数:6页
时间:2019-04-29
《实验报告实验五二叉树的基本操作和应用实验报告.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、重庆大学学生上机实验报告上机课程名称:数据结构上机实验名称:实验5实验名称二叉树的基本操作和应用开课学院及实验室:经济与工商管理学院2011年7月1日学院经管学院年级、专业、班信息管理与信息系统姓名苏浩辉学号20100373指导教师陈铿成绩教师评语教师签名:【实验目的】给定如下二叉树,编程完成该二叉树的先序,中序和后序遍历,并输出其遍历序列。【实验内容】例程程序代码:usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespace二叉树遍历{
2、classNode{privateobject_data;privateNode_left;privateNode_right;publicobjectData{get{return_data;}}publicNodeLeft{get{return_left;}set{_left=value;}}publicNodeRight{get{return_right;}set{_right=value;}}publicNode(objectdata){_data=data;}publicoverridestringToString(){return_dat
3、a.ToString();}}classBinaryTree{privateNode_head;privatestringcStr;publicNodeHead{get{return_head;}}publicBinaryTree(stringconstructStr){cStr=constructStr;_head=newNode(cStr[0]);Add(_head,0);}privatevoidAdd(Nodeparent,intindex){intleftIndex=2*index+1;if(leftIndex4、(cStr[leftIndex]!='*'){parent.Left=newNode(cStr[leftIndex]);Add(parent.Left,leftIndex);}}intrightIndex=2*index+2;if(rightIndex5、l){Console.Write(node.ToString());PreOrder(node.Left);PreOrder(node.Right);}}publicvoidMidOrder(Nodenode){if(node!=null){MidOrder(node.Left);Console.Write(node.ToString());MidOrder(node.Right);}}publicvoidAfterOrder(Nodenode){if(node!=null){AfterOrder(node.Left);AfterOrder(node6、.Right);Console.Write(node.ToString());}}}classProgram{staticvoidMain(string[]args){BinaryTreebTree=newBinaryTree("ABCDEF*****G************H");Console.WriteLine("先序历遍为:");bTree.PreOrder(bTree.Head);//先序遍Console.WriteLine();Console.ReadLine();Console.WriteLine("中序序历遍为:");bTr7、ee.MidOrder(bTree.Head);//中序遍Console.WriteLine();Console.ReadLine();Console.WriteLine("后序历遍为:");bTree.AfterOrder(bTree.Head);//后序遍Console.WriteLine();Console.ReadLine();}}}运行结果如图:【结果及分析】通过这次实验,我了解了二叉树的物理存储结构以及二叉树的代码化,学会了做将二叉树图用计算机语言表示出来。但是,在实验中也遇到了很多问题,例如:1.在刚开始实验的时候我感觉无从下手,虽8、然书已经看了几遍。例如最简单的将实验要求的二叉树怎么同程序表达出来就已经想了半天没搞懂,最后是上网找了很多资
4、(cStr[leftIndex]!='*'){parent.Left=newNode(cStr[leftIndex]);Add(parent.Left,leftIndex);}}intrightIndex=2*index+2;if(rightIndex5、l){Console.Write(node.ToString());PreOrder(node.Left);PreOrder(node.Right);}}publicvoidMidOrder(Nodenode){if(node!=null){MidOrder(node.Left);Console.Write(node.ToString());MidOrder(node.Right);}}publicvoidAfterOrder(Nodenode){if(node!=null){AfterOrder(node.Left);AfterOrder(node6、.Right);Console.Write(node.ToString());}}}classProgram{staticvoidMain(string[]args){BinaryTreebTree=newBinaryTree("ABCDEF*****G************H");Console.WriteLine("先序历遍为:");bTree.PreOrder(bTree.Head);//先序遍Console.WriteLine();Console.ReadLine();Console.WriteLine("中序序历遍为:");bTr7、ee.MidOrder(bTree.Head);//中序遍Console.WriteLine();Console.ReadLine();Console.WriteLine("后序历遍为:");bTree.AfterOrder(bTree.Head);//后序遍Console.WriteLine();Console.ReadLine();}}}运行结果如图:【结果及分析】通过这次实验,我了解了二叉树的物理存储结构以及二叉树的代码化,学会了做将二叉树图用计算机语言表示出来。但是,在实验中也遇到了很多问题,例如:1.在刚开始实验的时候我感觉无从下手,虽8、然书已经看了几遍。例如最简单的将实验要求的二叉树怎么同程序表达出来就已经想了半天没搞懂,最后是上网找了很多资
5、l){Console.Write(node.ToString());PreOrder(node.Left);PreOrder(node.Right);}}publicvoidMidOrder(Nodenode){if(node!=null){MidOrder(node.Left);Console.Write(node.ToString());MidOrder(node.Right);}}publicvoidAfterOrder(Nodenode){if(node!=null){AfterOrder(node.Left);AfterOrder(node
6、.Right);Console.Write(node.ToString());}}}classProgram{staticvoidMain(string[]args){BinaryTreebTree=newBinaryTree("ABCDEF*****G************H");Console.WriteLine("先序历遍为:");bTree.PreOrder(bTree.Head);//先序遍Console.WriteLine();Console.ReadLine();Console.WriteLine("中序序历遍为:");bTr
7、ee.MidOrder(bTree.Head);//中序遍Console.WriteLine();Console.ReadLine();Console.WriteLine("后序历遍为:");bTree.AfterOrder(bTree.Head);//后序遍Console.WriteLine();Console.ReadLine();}}}运行结果如图:【结果及分析】通过这次实验,我了解了二叉树的物理存储结构以及二叉树的代码化,学会了做将二叉树图用计算机语言表示出来。但是,在实验中也遇到了很多问题,例如:1.在刚开始实验的时候我感觉无从下手,虽
8、然书已经看了几遍。例如最简单的将实验要求的二叉树怎么同程序表达出来就已经想了半天没搞懂,最后是上网找了很多资
此文档下载收益归作者所有