实验五:树和二叉树实验——信管1133-09

来源:互联网 发布:少女内裤品牌 知乎 编辑:程序博客网 时间:2024/05/18 09:11

《数据结构》实验五:   树和二叉树实验

一..实验目的

     巩固树和二叉树的相关知识,特别是二叉树的相关内容。学会运用灵活应用。

1.回树和二叉树的逻辑结构和存储方法,清楚掌握树和二叉树的遍历操作。

2.学习树的相关知识来解决实际问题。

3.进一步巩固程序调试方法。

4.进一步巩固模板程序设计。

二.实验时间

   准备时间为第10周到第12前半周,具体集中实验时间为12周周四。2个学时。

三..实验内容

1.自己设计一个二叉树,深度最少为4,请递归算法分别用前序、中序、后序遍历输出树结点。

2.写程序判定出六枚硬币中的一枚假硬币。参照课本P136页8枚硬币的判定方法。

3. 自己确定2n(大小自己确定)个同学参加学校羽毛球淘汰比赛,请定程序,存放各队员比赛结果,并根据结果确定冠亚军。全

 第一题是必做题,第二题和第三题选做题。选做并做对者每题奖励5分。

四.参考资料

    实验教材P207到218

#ifndef Bitree_H#define Bitree_Hstruct BiNode{char data;BiNode * lchirld,*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);};#endif;

#include<iostream>using namespace std;#include "Bitree.h"BiNode *Bitree::Creat (BiNode *bt){char ch;cout<<"请输入创建一棵二叉树的结点数据"<<endl;cin>>ch;if(ch=='#')return NULL;else{bt=new BiNode;bt->data =ch;bt->lchirld =Creat(bt->lchirld);bt->rchild =Creat(bt->rchild );}return bt;}void Bitree::Release (BiNode *bt){if(bt!=NULL){Release(bt->lchirld );Release(bt->rchild );delete bt;}}void Bitree::Preorder(BiNode *bt){if(bt==NULL)return;else{cout<<bt->data <<" ";Preorder(bt->lchirld );Preorder(bt->rchild );}}void Bitree::Inorder(BiNode *bt){if(bt==NULL)return;else{Inorder(bt->lchirld );cout<<bt->data <<" ";Inorder(bt->rchild );}}void Bitree::Postorder(BiNode *bt){if(bt==NULL)return;else{Postorder(bt->lchirld );Postorder(bt->rchild );cout<<bt->data <<" ";}}

#include<iostream>using namespace std;#include "Bitree.h"int main(){Bitree T;cout<<"---------前序遍历---------"<<endl;T.Preorder();cout<<endl;cout<<"---------中序遍历---------"<<endl;T.Inorder();cout<<endl;cout<<"---------后序遍历---------"<<endl;T.Postorder();cout<<endl;return 0;}



不知道为什么就变成了死循环,求指导!

0 0