早教吧 育儿知识 作业答案 考试题库 百科 知识分享

用MFC做栈类模板的设计与实现进行栈类模板的设计并实现,栈采用链式存储结构,数据元素可以是char,int,float等多种数据类型,包括以下功能:(1)实现初始化栈操作,建立一个空栈;(

题目详情
用MFC做栈类模板的设计与实现
进行栈类模板的设计并实现,栈采用链式存储结构,数据元素可以是char,int, float等多种数据类型,包括以下功能:(1) 实现初始化栈操作,建立一个空栈;(2) 实现清空栈操作;(3) 实现判断栈是否为空的操作;(4) 实现求栈长度的操作;(5) 实现返回栈顶元素的操作;(6) 实现入栈操作;(7) 实现出栈操作;(8)实现栈的遍历操作,输出栈的每个元素。(9) 将上述功能作为类的成员函数实现,编写主函数测试上述功能。
▼优质解答
答案和解析
#include<iostream>
using namespace std;
template<class T>
class Stack
{
private:
 T s[10];
 int top;
public:
 bool push(T a);
 T pop(int i);
 bool stackempty();
 Stack(){top=0;}
};
template<class T>
bool Stack<T>::push(T a)
{
 if(top<10)
 {
  s[top++]=a;
  return 1;
 }
 else
  return 0;
}
template<class T>
T Stack<T>::pop(int i)
{

if(i==0)top--;
  return s[top--];
 
}
template<class T>
bool Stack<T>::stackempty()
{
 if(s)
  return 0;
 else 
  return 1;
 }
void main()
{
 int a,n;char b;
 Stack<int> a1;
 cout<<"请输入栈元素个数:";
 cin>>n;
 cout<<"请输入栈元素:";
 for(int i=0;i<n;i++)
 {
  cin>>a;
  a1.push(a);
 }
 cout<<"出栈:";
 for(int i=0;i<n;i++)
  cout<<a1.pop(i)<<"  ";
 cout<<endl;
 Stack<char> a2;
 cout<<"请输入栈元素个数:";
 cin>>n;
 cout<<"请输入栈元素:";
 for(int i=0;i<n;i++)
 {
  cin>>b;
  a2.push(b);
 }
 cout<<"出栈:";
 for(int i=0;i<n;i++)
  cout<<a2.pop(i)<<"  ";
 cout<<endl;

}