stack是一种先进后出的数据结构,栈中进去数据称为入栈,栈中弹出数据称为出栈,栈中只有栈顶的元素才可以被外界使用,所以栈不能有遍历行为。
stack常用接口:
构造函数: //stack采用模板类实现, stack对象的默认构造形式 stack<T> stk; //拷贝构造函数 stack(const stack &stk); 赋值操作: //重载等号操作符 stack& operator=(const stack &stk); 数据存取: //向栈顶添加元素 push(elem); //从栈顶移除第一个元素 pop(); //返回栈顶元素 top();
大小操作: //判断堆栈是否为空 empty(); //返回栈的大小 size();
例子:
#include <iostream>
#include <stack>
using namespace std;
void test01(){
stack<int> stack;
stack.push(13);
stack.push(10);
stack.push(25);
while(!stack.empty()){
cout<<"栈顶元素为:"<<stack.top()<<endl;
stack.pop();
}
cout<<"栈的大小为:"<<stack.size()<<endl;
}
int main() {
test01();
return 0;
}
queue是一种先进先出的数据结构,队列允许从队尾新增元素,从队头移除元素,队列中进数据称为入队,队列中出数据称为出队。
queue的常用接口:
构造函数: //queue采用模板类实现,queue对象的默认构造形式 queue<T> que; //拷贝构造函数 queue(const queue &que); 赋值操作: //重载等号操作符 queue& operator=(const queue &que); 数据存取: //往队尾添加元素 push(elem); //从队头移除第一个元素 pop(); //返回最后一个元素 back(); //返回第一个元素 front(); 大小操作: //判断堆栈是否为空 empty(); //返回栈的大小 size();
例子:
#include <iostream>
#include <queue>
using namespace std;
void test01(){
queue<int> queue;
queue.push(13);
queue.push(10);
queue.push(25);
queue.push(16);
while(!queue.empty()){
cout<<"队头元素为:"<<queue.front()<<endl;
cout<<"队尾元素为:"<<queue.back()<<endl;
cout<<"-------------------"<<endl;
queue.pop();
}
cout<<"队列的大小为:"<<queue.size()<<endl;
}
int main() {
test01();
return 0;
}