《数据结构》实验五: 树和二叉树实验
发布时间:2020-12-15 05:51:04 所属栏目:安全 来源:网络整理
导读:?? 一. . 实验目的 ???? 巩固树和二叉树的相关知识,特别是二叉树的相关内容。学会运用灵活应用。 1. 回树和二叉树的逻辑结构和存储方法,清楚掌握树和二叉树的遍历操作。 2. 学习树的相关知识来解决实际问题。 3. 进一步巩固程序调试方法。 4. 进一步巩固
??
一..实验目的 ???? 巩固树和二叉树的相关知识,特别是二叉树的相关内容。学会运用灵活应用。 1.回树和二叉树的逻辑结构和存储方法,清楚掌握树和二叉树的遍历操作。 2.学习树的相关知识来解决实际问题。 3.进一步巩固程序调试方法。 4.进一步巩固模板程序设计。 二.实验内容 自己设计一个二叉树,深度最少为4,请递归算法分别用前序、中序、后序遍历输出树结点。 写程序判定出六枚硬币中的一枚假硬币。参照课本P136页8枚硬币的判定方法。 3. 自己确定2n(大小自己确定)个同学参加学校羽毛球淘汰比赛,请定程序,存放各队员比赛结果,并根据结果确定冠亚军。全 ?第一题是必做题,第二题和第三题选做题。选做并做对者每题奖励5分。
#include<iostream> using namespace std; struct Binode { char data; Binode *lchild,*rchild; }; class Bitree { public: Bitree(){root=Creat(root);} ~Bitree(){Release(root);} void Preorder(){Preorder(root);} void Inorder(){Inorder(root);} void Postorder(){Postorder(root);} private: Binode *root; Binode *Creat(Binode *bt); void Release(Binode *bt); void Preorder(Binode *bt); void Inorder(Binode *bt); void Postorder(Binode *bt); }; Binode *Bitree::Creat(Binode *bt) { char ch; cout<<"请输入创建一棵二叉树的结点数据"<<endl; cin>>ch; if(ch=='#') return NULL; else{ bt=new Binode; bt->data=ch; bt->lchild=Creat(bt->lchild); bt->rchild=Creat(bt->rchild); } return bt; } void Bitree::Release(Binode *bt) { if(bt!=NULL) { Release(bt->lchild); Release(bt->rchild); delete bt; } } void Bitree::Preorder(Binode *bt) { if(bt==NULL) return; else{ cout<<bt->data<<" "; Preorder(bt->lchild); Preorder(bt->rchild); } } void Bitree::Inorder(Binode *bt) { if(bt==NULL) return; else{ Inorder(bt->lchild); cout<<bt->data<<" "; Inorder(bt->rchild); } } void Bitree::Postorder(Binode *bt) { if(bt==NULL) return; else{ Postorder(bt->lchild); Postorder(bt->rchild); cout<<bt->data<<" "; } } int main() { Bitree T; cout<<"--------前序遍历--------"<<endl; T.Preorder(); cout<<endl; cout<<"--------中序遍历--------"<<endl; T.Inorder(); cout<<endl; cout<<"--------后序遍历--------"<<endl; T.Postorder(); cout<<endl; return 0; }
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |