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

本文探讨如何利用两个队列实现栈的功能,以及如何用两个栈实现队列的特性。通过分析和代码展示,阐述了在数据结构中栈的后进先出(LIFO)和队列的先进先出(FIFO)原理,并详细解释了在不同操作下,如何巧妙地转换这两个数据结构来达到预期的效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

队列和栈

栈:后进先出(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 文件

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值