队列和栈,c++

c++中的头文件

#include<stack>
#include<queue>
队列的功能:

q.empty()               如果队列为空返回true,否则返回false  
q.size()                    返回队列中元素的个数  
q.pop()                    删除队列首元素但不返回其值  
q.front()                  返回队首元素的值,但不删除该元素  
q.push()                  在队尾压入新元素  
q.back()                  返回队列尾元素的值,但不删除该元素  
栈的功能:

s.empty()               如果栈为空返回true,否则返回false  
s.size()                返回栈中元素的个数  
s.pop()                 删除栈顶元素但不返回其值  
s.top()                 返回栈顶的元素,但不删除该元素  
s.push()                在栈顶压入新元素
可以看到,队列和栈都有empty(),size()的功能

队列实现栈的功能:

栈的top就是队列的front,pop和出队相同,也就是说,我们只需要实现push功能

栈的push功能就是让队列实现在队首加入元素,这就需要两个队列q1,q2,函数让q2将要push的值先入队,再让所有q1中的元素都出队并加入到q2中,最后返回q2

queue<int> push(queue<int>q1) {
    queue<int> q2;
    q2.push(val);
    while(!q1.isempty()) {
        int temp = q1.front();
        q1.pop();
        q2.push(temp);
    }
    return q2;
}

栈要实现队列的back()和push()两个函数

back的实现就是完全复制一个栈,最后一个出栈的元素就是队列back()返回的值

push()的实现就是让栈实现在栈底加入元素,让所有元素都出来后让目标元素先入栈,再把所有元素入栈


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值