栈需要有“栈顶指针”,压栈push操作,出栈pop操作,取栈顶top操作,注意压栈、出栈”栈顶指针“变化,注意出栈和取栈顶要判断栈空。
#include <iostream>
#include <string>
using namespace std;
class stack {
private:
int s[100000];
int top_index = -1;
public:
void push(int x) {
top_index += 1;
s[top_index] = x;
}
void pop() {
if (top_index >= 0) {
cout << s[top_index] << endl;
top_index -= 1;
} else
cout << "error" << endl;
}
void top() {
if (top_index >= 0)
cout << s[top_index] << endl;
else
cout << "error" << endl;
}
};
int main() {
stack st;
int n;//操作个数
cin>>n;
for (int i=0; i<n; i++) {
string op;
cin>>op;
if (op=="push") {
int num;
cin>>num;
st.push(num);
}else if (op=="top") {
st.top();
}else if (op =="pop") {
st.pop();
}
}
return 0;
}
// 64 位输出请用 printf("%lld")