资源描述:
《实验五二叉树操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验五二叉树操作实验五二叉树操作一、实验目的1、掌握二叉树的基本概念,链表描述方法;遍历方法。二、实验内容1、创建二叉树类。二叉树的存储结构使用链表。2、提供操作:前序遍历、中序遍历、后序遍历、层次遍历、计算二叉树结点数目、计算二叉树高度。3、对建立好的二叉树,执行上述各操作。4、接收键盘录入的二叉树前序序列和中序序列(各元素各不相同),输出该二叉树的后序序列。代码//exp5.cpp:定义控制台应用程序的入口点。//#include〃stdafx・h"#inclucle^BinaryTrcc.h〃#include〃Bina/ryTreeNode.h〃#includ
2、eiostreamusingnamespacestd;//BinaryTreeinta,x,y,z;intcount=0;//tcmplatcclassT//voidct(BinaryTreeNodeT*t){count++;}int_tmain(intargc,_TCHAR*argv){//y.MakeTree(1,a,a);//z.MakeTree(2,a,a);//x.MakeTree(3,y,z);//y.MakeTree(4,x,a);intlength;cout〃输入数的节点数:〃;cinlongth;chair*preOd二newchar[1ength
3、];char*inOd二newchar[length];cout"前序输入序列:";for(inti=0;ilength;i++){cinpreOd[i];cout〃第〃i〃个〃;}cout〃中序输入序列:〃;for(intj=0;jlength;j++)cininOd[j];BinaryTreechartr;tr.prelnOd(preOd,inOd,length);cout〃后序序列:〃;tr.PostOutput();cout〃前序遍历结果:〃;tr.PreOutput();cout〃中序遍历结果tr.InOutput();cout"逐层遍历结果:";tr.L
4、evelOutput();cout〃树的高度:/ztr.Height()endl;//tr>PreOrder(ct);//cout,/树的节点数目:"countendl;//cout/z后序遍历结果:〃;//y.PostOutput();systcm(〃pausc〃);return0;}///////////////////////////////////////BinaryTree.h#pragmaonce#includcz,BinaryTrceNodc.h〃#include〃BadTnput.h〃#include〃LinkedQueue.h〃#include〃i
5、ostteam〃#includez/0ut0fBounds.h〃usingnamespacestd;templateclassTclassBinaryTree{public:BinaryTree(){root=0;}^BineiryTree(void);boolIsEmpty()const{return((root)?false:true);}boolRoot(T&x)const;voidMakeTree(constT&element,BinaryTreeT&left,BinaryTreeT&right);voidPreOrder(void(*Visit)(Binc
6、iryTreeNodeT*u)){PreOrder(Visit,root):}voidInOrder(void(*Visit)(BinaryTrccNodcT*u)){InOrder(Visit,root);}voidPostOrder(void(*Visit)(BinaryTreeNodeT*u)){PostOrder(Visit,root);}voidLcvclOrder(void(*Visit)(BinaryTrccNodcT*u));intHeight()const{returnHeight(r()()t);}//intSize(){//count二0;//
7、PreOrder(Add1,root);//rcturricount;//}voidPreOutput(){PreOrder(Output,root);coutendl;}voidInOutput(){InOrder(0utput,toot);coutcndl;}voidPostOutput(){PostOrder(Output,root):coutendl;}voidLevelOutput(){LevelOrder(Output);coutendl;}voidprelnOcl(TprcOcl,TinOd,intlen){root=newBinciryTreeN