c++中如何使用两个栈实现一个队列

技术c++中如何使用两个栈实现一个队列c++中如何使用两个栈实现一个队列,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一、栈栈:只允许在固定

如何在C中用两个栈实现一个队列,很多新手对此都不是很清楚,为了帮助大家解决这个问题,下面小编就给大家详细讲解一下,有这方面需求的可以借鉴一下,希望大家能有所收获。

一、栈

栈:只允许在固定端插入和删除元素。进入和删除操作的一端称为栈顶,另一端称为栈底。

堆栈功能:后进先出

堆栈功能:将数据从一个序列更改为另一个序列。

第二,排队

1.只允许一端插入数据,另一端删除数据。

2.插入操作的结束称为队列的结束(进入队列)。

3.删除操作的结束称为队列头(队列外)。

4.队列具有先进先出功能。

使用两个堆栈实现一个队列。

想法:定义一个结构中有两个栈,一个专门用于数据输入,另一个专门用于数据输出。首先将数据放入堆栈1,然后将数据移动到堆栈2。这个过程是:当栈1不为空,栈2为空时,先取出栈1的顶部数据放入栈2,以此类推。最后,弹出栈2的数据,实现一个队列。

具体代码如下:

# pragmaonce # include ' stack 1 . h ' # includes dio . httypedefstructsquee { stack stack 1;//输入数据Stackstack2//输出数据} SQueue//初始化void init(squee * PSQ){ stack * P1,* P2;P1=(PSq-stack 1);p2=(PSq-stack 2);stack init(P1);stack init(p2);}//堆叠空推(squee * PSQ,sdatypedata){ stack * P1,* P2;P1=(PSq-stack 1);p2=(PSq-stack 2);StackPush(p1,数据);}//弹出无效弹出(squee * PSQ){ stack * P1,* P2;P1=(PSq-stack 1);p2=(PSq-stack 2);SDataTypedataif(StackIsEmpty(p2)){while(!StackTop空(P1)){ data=stack top(P1);stack op(P1);StackPush(p1,数据);} } StackOp(p2);} sdatyperfront(squee * PSq){ Stack * P1,* p2P1=(PSq-stack 1);p2=(PSq-stack 2);SDataTypedataif(StackIsEmpty(p2)){while(!StackTop空(P1)){ data=stack top(P1);stack op(P1);StackPush(p1,数据);} } returnStackTop(p2);}阅读以上内容对你有帮助吗?如果您想了解更多相关知识或阅读更多相关文章,请关注行业资讯频道,感谢您的支持。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/113757.html

(0)

相关推荐

  • gcc与arm-linux-gcc和arm-elf-gcc的关系是什么

    技术gcc与arm-linux-gcc和arm-elf-gcc的关系是什么gcc与arm-linux-gcc和arm-elf-gcc的关系是什么,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解

    攻略 2021年10月22日
  • SQLServer2012镜像主库挂掉怎么切换到镜像备库

    技术SQLServer2012镜像主库挂掉怎么切换到镜像备库本篇内容介绍了“SQLServer2012镜像主库挂掉怎么切换到镜像备库”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学

    攻略 2021年11月8日
  • VSCode如何进行规范配置

    技术VSCode如何进行规范配置这篇文章主要介绍了VSCode如何进行规范配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用这些配置规范并格式化你的代

    攻略 2021年11月1日
  • sqlserver手动执行计划(sqlserver的执行计划)

    技术怎样浅析SQL Server中执行计划的相关机制以及常见问题怎样浅析SQL Server中执行计划的相关机制以及常见问题,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能

    攻略 2021年12月20日
  • 如何开始优化数据库

    技术如何开始优化数据库如何开始优化数据库,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。对于数据库的调优, 可以从以下几个方面来考虑, 硬件的配置, 网络

    攻略 2021年12月1日
  • Redis高级应用的示例分析

    技术Redis高级应用的示例分析小编给大家分享一下Redis高级应用的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Redis高级实用

    攻略 2021年11月15日