巩固树和二叉树的相关知识,特别是二叉树的相关内容。学会运用灵活应用。
1.回树和二叉树的逻辑结构和存储方法,清楚掌握树和二叉树的遍历操作。
2.学习树的相关知识来解决实际问题。
3.进一步巩固程序调试方法。
4.进一步巩固模板程序设计。
二.实验时间
准备时间为第10周到第12前半周,具体集中实验时间为12周周四。2个学时。
三..实验内容
1.自己设计一个二叉树,深度最少为4,请递归算法分别用前序、中序、后序遍历输出树结点。
2.写程序判定出六枚硬币中的一枚假硬币。参照课本P136页8枚硬币的判定方法。3. 自己确定2n(大小自己确定)个同学参加学校羽毛球淘汰比赛,请定程序,存放各队员比赛结果,并根据结果确定冠亚军。全
第一题是必做题,第二题和第三题选做题。选做并做对者每题奖励5分。
实验代码
#include<iostream> using namespace std; const int stacksize=10; template<class T> class Seqstack { public: Seqstack(){top=-1;} ~Seqstack(){} void ruz(T x); T chuz(); T quzd(); int empty(); private: T data[stacksize]; int top; }; template<class T> void Seqstack<T>::ruz(T x) { if(top==stacksize-1)throw"上溢错误"; top++; data[top]=x; } template<class T> T Seqstack<T>::chuz() { T x; if(top==-1)throw"下溢错误"; x=data[top--]; return x; } template<class T> T Seqstack<T>::quzd() { if(top!=-1) return data[top]; } template<class T> int Seqstack<T>::empty() { if(top==-1) return 1; else return 0; } void main() { Seqstack<int> z; if(z.empty()) cout<<"此栈为空!"<<endl; else cout<<"此栈为非空!"<<endl; cout<<"1,2,3,4,5依次入栈!"<<endl; z.ruz(1); z.ruz(2); z.ruz(3); z.ruz(4); z.ruz(5); cout<<"此栈的栈顶元素是:"; cout<<z.quzd()<<endl; cout<<"执行一次出栈操作!"<<endl; z.chuz(); cout<<"现在的栈顶元素是:"; cout<<z.quzd()<<endl; cout<<"再执行一次出栈操作!"<<endl; z.chuz(); cout<<"现在栈顶元素是:"; cout<<z.quzd()<<endl; }
原文链接:https://www.f2er.com/datastructure/382785.html