不同写法
top 栈顶指针指向栈顶元素的后一个位置
stk[0]
会进行赋值
先赋值,后栈顶指针++ stk[tt++]=x
输出栈顶元素 cout<<stk[top-1]<<endl
#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int stk[N], top;
int main() {
int n;
cin >> n;
while (n--) {
string op;
int x;
cin >> op;
if (op == "push") {
cin >> x;
stk[top++] = x;
} else if (op == "pop") {
top--;
} else if (op == "empty") {
if (top) puts("NO");
else puts("YES");
} else {
cout << stk[top - 1] << endl;
}
}
}
top 栈顶指针指向栈顶元素
stk[0]
不会进行赋值
先栈顶指针++, 后赋值 stk[tt++]=x
输出栈顶元素 cout<<stk[top]<<endl
#include<iostream>
using namespace std;
const int N = 1e5 + 10;
int stk[N], top;
int main() {
int n;
cin >> n;
while (n--) {
string op;
int x;
cin >> op;
if (op == "push") {
cin >> x;
stk[++top] = x;
} else if (op == "pop") {
top--;
} else if (op == "empty") {
if (top) puts("NO");
else puts("YES");
} else {
cout << stk[top] << endl;
}
}
}