上QQ阅读APP看书,第一时间看更新
2.11 stack堆栈容器
stack堆栈是一个后进先出(Last In First Out, LIFO)的线性表,插入和删除元素都只能在表的一端进行。插入元素的一端称为栈顶(Stack Top),而另一端则称为栈底(Stack Bottom)。插入元素叫入栈(Push),元素的删除则称为出栈(Pop)。图2-9是堆栈示意图。
图2-9 堆栈示意图
要使用stack,必须声明头文件包含语句“#include <stack>”。stack文件在C:\Program Files\Microsoft Visual Studio\VC98\Include文件夹中。
堆栈的使用方法
堆栈只提供入栈、出栈、栈顶元素访问和判断是否为空等几种方法。
采用push()方法将元素入栈;采用pop()方法出栈;采用top()方法访问栈顶元素;采用empty()方法判断堆栈是否为空,如果是空的,则返回逻辑真,否则返回逻辑假。当然,可以采用size()方法返回当前堆栈中有几个元素。
下面的程序是对堆栈各种方法的示例:
#include <stack> #include <iostream> using namespace std; int main(int argc, 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; }
运行结果:
9 4 0 9 3 2 1