数据结构中栈和队列的相互实现

队列和栈

栈:后进先出(LIFO-last in first out):最后插入的元素最先出来。
队列:先进先出(FIFO-first in first out):最先插入的元素最先出来。

两个队列实现栈

1.分析:

在这里插入图片描述

两个队列实现栈队列和栈分析队列和栈栈:后进先出(LIFO-last in first out):最后插入的元素最先出来。队列:先进先出(FIFO-first in first out):最先插入的元素最先出来。
分析图(1):当栈里面插入元素“abcd”的时候,元素a在栈底(最后出去),d在栈顶(最先出去);
图(2):将元素“abc”从q1中头删,然后再q2中尾插进来之后,头删q1中的元素“d”,就相当于实现了栈顶元素的出栈;
图(3):同理,将元素“ab”从q2中头删,然后尾插到q1中,然后再头删q2中的元素“c”;
图(4):同理,删除元素“b”;
图(5):当栈又插入一个元素“e”时,此时元素“a”不能从队列中删除,而是将元素“a”插入q2中,再删除q1中的元素“e”,最后再删除元素“a”。说明:其中红色框代表该队列中的元素出队列,该队列为空。

2.代码:

.h

.cpp
.cpp
.cpp
.cpp

两个栈实现队列

1. 分析:

在这里插入图片描述

2.代码:

.h 文件
.cpp文件
.cpp 文件

猜你喜欢

转载自blog.csdn.net/Px_picha/article/details/107945501