用c++编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能: 初始化栈
用c++编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能:初始化栈S。判断栈S是否非空。依次进栈元素a,b,c,d,e。输出栈的长度。输出从...
用c++编写一个程序,实现顺序栈的各种基本运算,并在此基础上设计一个主程序完成如下功能:
初始化栈S。
判断栈S是否非空。
依次进栈元素a,b,c,d,e 。
输出栈的长度。
输出从栈顶到栈底的元素。
输出出栈序列。
释放栈。 展开
初始化栈S。
判断栈S是否非空。
依次进栈元素a,b,c,d,e 。
输出栈的长度。
输出从栈顶到栈底的元素。
输出出栈序列。
释放栈。 展开
展开全部
#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;
}
更多追问追答
追问
再帮我解决一题可好。。
追答
这个。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询