栈的基础知识:
栈的清空:
void clear()
{
TOP=-1;
}
获取栈内元素个数(size)
int size()
{
return TOP+1;
}
判空(empty)
bool empty()
{
if(TOP==-1)
return true;
else
return false;
}
进栈(push)
void push(int x)
{
st[++TOP]=x;
}
出栈(pop)
void pop()
{
TOP--;
}
取栈顶元素(top)
int top()
{
return st[TOP];
}
使用stack模板函数没有清空,按如下方式进行清空:
while(!st.empty())
{
st.pop();
}
stack库函数的用法:
1.stack定义:
头文件:
#include<stack>
using namespace std;
stack<int >a
2.stack容器内元素的访问:
push()+top()
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int> a;
for(int i=1; i<=5; i++)
{
a.push(i); //依次将1,2,3,4,5压入栈
}
cout << a.top();
}
pop()函数
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int> a;
for(int i=1; i<=5; i++)
{
a.push(i); //依次将1,2,3,4,5压入栈
}
for(int i=0; i<3; i++) //连续弹3次
a.pop();
cout << a.top();
}
empty函数
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int> a;
if(a.empty()==true)
cout << "Empty!" << endl;
else
cout << "No Empty!" << endl;
a.push(1);
if(a.empty()==true)
cout << "Empty!" << endl;
else
cout << "No Empty!" << endl;
}
size函数
#include<iostream>
#include<stack>
using namespace std;
int main()
{
stack<int> a;
for(int i=1; i<=5; i++)
{
a.push(i); //依次将1,2,3,4,5压入栈
}
cout << a.size();
}