栈
一 栈的相关操作
1.清空
void clear()
{
TOP=-1;
}
2.获取栈内元素个数
int size()
{
return TOP+1;
}
3.判空
bool empty()
{
if(TOP==-1) reurn true;
else return false;
}
4.进栈
void push()
{
st[++TOP]=x;
}
5.出栈
void pop()
{
TOP--;
}
6.取栈顶元素
int top()
{
return st[TOP];
}
二 STL中的stack容器
1.声明、push()、pop()、top()
#include <stdio.h>
#include <stack>
using namespace std;
int main()
{
stack<int> st;
for(int i=0;i<=5;i++)
{
st.push(i); //1 2 3 4 5依次入栈
}
for(int i=1;i<=3;i++)
{
st.pop();//5 4 3出栈
}
printf("%d\n",st.top()); //取栈顶元素
return 0;
}
2.empty()、size()
#include <stdio.h>
#include <stack>
using namespace std;
int main()
{
stack<int> st;
if(st.empty()==true){
printf("Empty!\n");
}
else{
printf("Not Empty\n");
}
st.push(1);
if(st.empty()==true){
printf("Empty!\n");
}
else{
printf("Not Empty\n");
}
printf("%d\n",st.size());
}
3.注意
STL没有实现栈的清空,所以如果需要栈的清空,可以用一个while循环反复pop出元素直到栈空。即:
while(!st.empty())
{
st.pop();
}