《数据结构》实验三: 栈和队列实验
发布时间:2021-03-30 07:20 所属栏目:53 来源:网络整理
导读:《数据结构》实验三:??? 栈和队列实验 一..实验目的 ???? 巩固栈和队列数据结构,学会运用栈和队列。 1.回顾栈和队列的逻辑结构和受限操作特点,栈和队列的物理存储结构和常见操作。 2.学习运用栈和队列的知识来解决实际问题。 3.进一步巩固程序调试方法。
《数据结构》实验三:??? 栈和队列实验 一..实验目的 ???? 巩固栈和队列数据结构,学会运用栈和队列。 1.回顾栈和队列的逻辑结构和受限操作特点,栈和队列的物理存储结构和常见操作。 2.学习运用栈和队列的知识来解决实际问题。 3.进一步巩固程序调试方法。 4.进一步巩固模板程序设计。 二.实验时间 ?? 准备时间为第5周到第6周,具体集中实验时间为6周第2次课。2个学时。 三..实验内容 1.自己选择顺序或链式存储结构,定义一个空栈类,并定义入栈、出栈、取栈元素基本操作。然后在主程序中对给定的N个数据进行验证,输出各个操作结果。 #include<iostream> using namespace std; template <class datatype> struct Node { datatype data; Node<datatype> *next; }; template <class datatype> class linkstack { public: linkstack(){top=NULL;} ~linkstack(){while(top!=NULL){Node<datatype> *q=top;top=top->next;delete q;}}; void push(datatype x); datatype pop(); datatype gettop(){if(top!=NULL)return top->data;} int Empty(){if(top==NULL)return 1;else return 0;} private: Node<datatype>* top; }; template <class datatype> datatype linkstack<datatype>::pop() { if(top==NULL)throw"xiayi"; datatype x=top->data; Node<datatype> * p=top; top=top->next; delete p; return x; } template <class datatype> void linkstack<datatype>::push(datatype x) { Node<datatype> * s=new Node<datatype>; s->data=x; s->next=top; top=s; } void main() { linkstack<int> t; if(t.Empty()==1)cout<<endl<<"栈为空"<<endl; else cout<<endl<<"栈非空"<<endl; int r[5]; cout<<endl<<"请对栈赋5个值:"<<endl; for(int i =0;i<5;i++) { cin>>r[i]; } cout<<endl; if(t.Empty()==1)cout<<endl<<"栈为空"<<endl; else cout<<endl<<"栈非空"<<endl; for(int n =0;n<5;n++)t.push(r[n]); cout<<endl<<"栈顶元素为:"<<t.gettop()<<endl; cout<<endl<<"执行一次初栈操作:"<<endl; t.pop(); cout<<endl<<"栈顶元素为:"<<t.gettop()<<endl; cout<<endl<<"执行一次初栈操作:"<<endl; t.pop(); cout<<endl<<"栈顶元素为:"<<t.gettop()<<endl; } (编辑:ASP站长网) |
相关内容
网友评论
推荐文章
热点阅读