用c++编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能: 初始化栈

用c++编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能:初始化栈S。判断栈S是否非空。依次进栈元素a,b,c,d,e。输出栈的长度。输出从... 用c++编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能:
初始化栈S。
判断栈S是否非空。
依次进栈元素a,b,c,d,e 。
输出栈的长度。
输出从栈顶到栈底的元素。
输出出栈序列。
释放栈。
展开
 我来答
百度网友fc027fc
推荐于2017-09-26 · TA获得超过1.1万个赞
知道大有可为答主
回答量:3160
采纳率:83%
帮助的人:789万
展开全部
#include<iostream>

using namespace std;

const int Max=100;

template <class T> 
class MyStack
{
    private:
            T *aa;
            unsigned int p;
    public :
           void init();
           bool isEmpty();
           T pop();
           void push(const T a);
           unsigned int size();
           void destroy();
                  
};

template <class T> 
void MyStack<T>::init()
{
      aa = new T[Max+1];
      p=0;
      return;    
};

template <class T> 
bool MyStack<T>::isEmpty()
{
      if(p==0) return true;
      else     return false;
};


template <class T> 
unsigned int MyStack<T>::size()
{
      return p;
};


template <class T> 
void MyStack<T>::push(const T a)
{
      p=p+1;
      aa[p]=a;    
};

template <class T> 
T MyStack<T>::pop()
{
       
      char t=aa[p];
      p=p-1; 
      cout << t << endl;
      return t;     
};

template <class T> 
void MyStack<T>::destroy()
{
       
      delete[] aa;
};

int main()
{
    
    MyStack<char> st;
    st.init();
    if(st.isEmpty()) cout << "MyStack is empty" << endl;
    else cout <<"MyStack is not empty" << endl;
    st.push('a');
    st.push('b');
    st.push('c');
    st.push('d');
    st.push('e'); 
    cout<< st.size()<<endl;
    
    while(!st.isEmpty()) st.pop();
    st.destroy();
    system("pause");
    return 0;
}


更多追问追答
追问
再帮我解决一题可好。。
追答
这个。。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式