顺序栈代码如下:
#include<iostream>
using namespace std;
const int Stacksize = 10;
template<class T>
class Seqstack {
public:
Seqstack();
~Seqstack();
void Push(T x);
T Pop();
T Gettop();
int Empty();
private:
T data[Stacksize];
int top;
};
//顺序栈的初始化
template<class T>
Seqstack<T>::Seqstack() {
top = -1;
}
//顺序栈的销毁
template<class T>
Seqstack<T>::~Seqstack() {
}
//入栈
template<class T>
void Seqstack<T>::Push(T x) {
if (top == Stacksize - 1) { throw"栈已满,入栈失败";}
top++;
data[top] = x;
}
//顺序表出栈
template<class T>
T Seqstack<T>::Pop() {
if (top == -1) {
cout << "栈为空,出栈失败" << endl;
}
else {
T x = data[top];
top--;
return x;
}
}
//取栈顶元素
template<class T>
T Seqstack<T>::Gettop() {
if (top == -1) {
cout << "栈为空,取栈失败" << endl;
}
else { cout << data[top] << endl; }
//while (top > -1) {
// cout << data[top] << " ";
// top--;
//}
return 0;
}
//判空
template<class T>
int Seqstack<T>::Empty() {
if (top == -1) {
cout << "栈为空" << endl;
}
else { cout << "栈不为空" << endl; }
return 0;
}
int main() {
Seqstack<int>s;
s.Pop();
s.Gettop();
s.Empty();
}
如果有帮助,编写不易,帮忙点个关注点个赞,谢谢。不懂的代码可以在评论区问我。