stack堆栈是一个后进先出(Last In Frist Out,LIFO)的线性表,插入插入和删除元素都只能在表的一段进行。插入元素的一端成为栈顶(Stack Top),而另一端则称为栈底(Stack Bottom)。插入元素叫入栈(Push),元素的删除则称为出栈(Pop)。下图为堆栈示意图。
要使用stack,必须声明头文件包含语句“#include <stack>”
堆栈的是使用方法:
堆栈只提供入栈、出栈、栈顶元素访问和判断是否为空等几种方法。
采用push()方法将元素入栈;采用pop()方法出栈;采用top()方法访问栈顶元素;采用empty()方法判断堆栈是否为空,如果是空的,则返回逻辑真,否则返回逻辑假。可以采用size()方法返回当前堆栈中有几个元素。
#include <stack>
#include <iostream>
using namespace std;
int main(int argc, const char * argv[]) {
//定义堆栈s,其元素类型是整型
stack<int> s;
//元素入栈
s.push(1);
s.push(2);
s.push(3);
s.push(9);
//读取栈顶元素
cout << s.top() << endl;
//返回堆栈元素数量
cout << s.size() << endl;
//判断堆栈是否为空
cout << s.empty() << endl;
while (s.empty() != true) {
cout << s.top() << " "; //读取栈顶元素
s.pop(); //出栈(即删除栈顶元素)
}
cout << endl;
return 0;
}