队列和栈的互相实现

概述:1. 用队列实现栈;2. 用栈实现队列

队列: 先进先出

栈:先进后出

队列实现栈

思路

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

class MyStack {

public:
void Push(int val)
{
if(queueSta.empty())
{
queueSta.push(val);
}
else
{
int cnt = queueSta.size();
queueSta.push(val);
while(cnt-- > 0)
{
queueSta.push(queueSta.front());
queueSta.pop();
}
}
}

int Pop()
{
int res = queueSta.front();
queueSta.pop();
return res;
}

bool Empty() {return queueSta.empty();};

private:
queue<int> queueSta;
};

栈实现队列

思路

实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class MyQueue {
public:
void Push(int val)
{
sta1.push(val);
}

int Pop()
{
if(sta2.empty())
{
while(!sta1.empty())
{
sta2.push(sta1.top());
sta1.pop();
}
}

int res = sta2.top();
sta2.pop();
return res;
}

private:
stack<int> sta1,sta2;
};

队列和栈的互相实现
https://hodlyounger.github.io/B_Code/CPP/STL/【STL】队列和栈的互相实现/
作者
mingming
发布于
2023年10月27日
许可协议