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)

相关推荐

  • 幂的乘方50道计算题,求50道六年级计算题是方程

    技术幂的乘方50道计算题,求50道六年级计算题是方程64x 207=169 127x 61=117 78x 15=78 253x 161=165 18x 255=217 178x 115=178 97x 5=9 121x

    生活 2021年10月22日
  • Pandas数据分析实用小技巧有哪些

    技术Pandas数据分析实用小技巧有哪些这篇文章给大家分享的是有关Pandas数据分析实用小技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。小技巧1:如何使用map对某些列做特征工程?

    2021年11月30日
  • php7.2运行失败怎么解决

    技术php7.2运行失败怎么解决本篇内容主要讲解“php7.2运行失败怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“php7.2运行失败怎么解决”吧!

    攻略 2021年12月9日
  • 怎么把照片缩小到10k,照片怎么改成10K左右大小

    技术怎么把照片缩小到10k,照片怎么改成10K左右大小把照片改成10K左右大小可以用美图秀秀修改怎么把照片缩小到10k,操作方法如下: 1、打开常用的浏览器,在浏览器搜索栏上输入“美图秀秀”,选着美图秀秀的官方链接。 2

    生活 2021年10月21日
  • 如何了解Tomcat小版本差异

    技术如何了解Tomcat小版本差异这期内容当中小编将会给大家带来有关如何了解Tomcat小版本差异,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。事情从这儿说起,项目里调试的时候,一个同

    攻略 2021年12月8日
  • Oracle 11g RAC中INTERMEDIATE Stuck Archiver状态的解决方法

    技术Oracle 11g RAC中INTERMEDIATE Stuck Archiver状态的解决方法这篇文章给大家介绍Oracle 11g RAC中INTERMEDIATE Stuck Archiver状态的解决方法,

    攻略 2021年11月12日