栈 和 队列

什么是栈?我们可以将栈理解成一个水桶,将栈内元素理解成直径正好是桶直径的球,如此我们将球放入桶中,后放入的球只能不断往上堆叠,而每次想要拿出一个球就只能拿出最上面的一个球,这就是栈的模型。

头文件以及定义
#include<stack> 

stack<int> st;             // 定义一个存放int类型的栈 
stack<string> st;          // 存放string 
stack<vector<int>> st;     // 是的,STL里的容器可以一个套一个

对栈的操作

stack<int> st; 
st.push(5); // 把5压进栈 
st.push(3); // 把3压进栈 
int x = st.top();// 读取栈顶元素,显然x == 3;
st.pop(); // 把栈顶元素弹出 
x = st.top(); // 这时候栈顶元素等于5 
int len = st.size(); // 看目前栈里有多少元素
st.empty(); // 判断栈是否为空,为空返回 true,不为空返回false;

 

队列

什么是队列?如果我们理解了什么是栈,那么队列就会很好理解。顾名思义,队列可以想象成生活中排队,先排进来的先出去,后排进来的后出去,人不能插队,元素也是如此,插入的元素只能排在最后,这就是队列的模型。

头文件以及定义
#include<queue> 

queue<int> q;         // int类型的队列 
queue<string> q;      // string类型的队列

对队列的操作

queue<int> q; 
q.push(5); // 将5入队 
q.push(6); // 将6入队 
q.push(7); 
int x = q.front(); // 访问队首元素,显然是 5
int y = q.back(); // 访问队尾元素 ,显然是7
q.pop(); // 将队首元素出队 ,5出列
x = q.front(); // 这时队首元素为6; 
q.size(); // 查询队列里有多少元素 
q.empty(); // 查询队列是否为空

 以上只是让大家初步认识栈和队列的表达方式,具体的算法展现和代码应用之后再分享给大家

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值