欢迎来到天天文库
浏览记录
ID:48601003
大小:93.00 KB
页数:13页
时间:2020-01-29
《数据结构实验报告树.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数据结构实验报告实验名称:实验三——树学生姓名:梁东峰班级:2010211119班内序号:07学号:10210562日期:2011年11月27号1实验目的通过选择下面五个题目之一进行实现,掌握如下内容:Ø进一步掌握指针、模板类、异常处理的使用Ø掌握栈的操作的实现方法Ø掌握队列的操作的实现方法Ø学习使用栈解决实际问题的能力Ø学习使用队列解决实际问题的能力2.实验内容根据二叉树的抽象数据类型的定义,使用二叉链表实现一个二叉树。Ø二叉树的基本功能:Ø1、二叉树的建立Ø2、前序遍历二叉树Ø3、中序遍历二叉树Ø4、后序遍历二叉
2、树Ø5、按层序遍历二叉树Ø6、求二叉树的深度Ø7、求指定结点到根的路径Ø8、二叉树的销毁Ø9、其他:自定义操作Ø编写测试main()函数测试线性表的正确性3.存储结构:采用的是栈的存储结构lchdatarchlchdatarchlchdatarchlchdatarchlchdatarchlchdatarchlchdatarch4.程序的分析和代码重现源程序#includeusingnamespacestd;templatestructBinode{Tdata;Binode*l
3、ch;Binode*rch;};templateclassBitree{private:voidcreate(Binode*&R,Tdata[],inti);voidDestroy(Binode*R);public:Binode*root;Bitree(Tdata[]);Bitree(){};voidpreorder(Binode*R);voidInorder(Binode*R);voidPostorder(Binode*R);voidLevelorder(B
4、inode*R);/*voidfind(Tdata[]);*/intDepth(Binode*R,intd);voidpath(Binode*root,char);~Bitree();};templatevoidBitree::create(Binode*&R,Tdata[],inti){if(data[i-1]!=0){R=newBinode;R->data=data[i-1];R->lch=R->rch=NULL;create(R->lch,data,2*i);
5、create(R->rch,data,2*i+1);}}/*templatevoidBitree::find(Tdata[]){*/templateBitree::Bitree(Tdata[]){create(root,data,1);}templatevoidBitree::preorder(Binode*R){if(R!=NULL){cout<data;preorder(R->lch);preorder(R->rch);}}templ
6、atevoidBitree::Inorder(Binode*R){if(R!=NULL){Inorder(R->lch);cout<data;Inorder(R->rch);}}templatevoidBitree::Postorder(Binode*R){if(R!=NULL){Postorder(R->lch);Postorder(R->rch);cout<data;}}templatevoidBitree::Level
7、order(Binode*R){Binode*queue[10000];intf=0,r=0;if(R!=NULL)queue[++r]=R;while(f!=r){Binode*p=queue[++f];cout<data;if(p->lch!=NULL)queue[++r]=p->lch;if(p->rch!=NULL)queue[++r]=p->rch;}}//销毁二叉树templatevoidBitree::Destroy(Binode*R){if(R!=
8、NULL){Destroy(R->lch);Destroy(R->rch);deleteR;}}templateBitree::~Bitree(){Destroy(root);}templateintBitree::Depth(Binode*R,intd){if(R==NULL)returnd;
此文档下载收益归作者所有