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)

相关推荐

  • oraclenumber型深度解析(oracle逻辑读是读哪里的数据)

    技术怎样浅析Oracle的物理读 逻辑读 一致性读 当前模式读怎样浅析Oracle的物理读 逻辑读 一致性读 当前模式读,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简

    攻略 2021年12月20日
  • 怎么进行-2018-4990漏洞调试的分析

    技术怎么进行-2018-4990漏洞调试的分析这篇文章给大家介绍怎么进行-2018-4990漏洞调试的分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。测试环境Windows 7 SP1 x86Ad

    攻略 2021年11月25日
  • 学习笔记 2021.12.9cont2

    技术学习笔记 2021.12.9cont2 学习笔记 2021.12.9cont22021.12.9
    子查询
    相关子查询
    如果子查询的执行依赖于外部查询,通常情况下都是因为子查询中的表用到了外部的表,并

    礼包 2021年12月10日
  • 提升Azure App Service的几个建议分别是什么

    技术提升Azure App Service的几个建议分别是什么这篇文章将为大家详细讲解有关提升Azure App Service的几个建议分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后

    攻略 2021年11月18日
  • python单元测试怎样开展(pytest如何实现自动化测试)

    技术Pyhon中如何实现单元测试这篇文章将为大家详细讲解有关Pyhon中如何实现单元测试,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。文件calculator.py#计算器类
    clas

    攻略 2021年12月17日
  • 红烧肉的做法窍门,家庭版红烧肉怎么做不油腻

    技术红烧肉的做法窍门,家庭版红烧肉怎么做不油腻您好红烧肉的做法窍门,我是嘴嘴深夜食堂家庭版红烧肉只需要一坛黄酒,一块老姜,再加上盐,酱油,冰糖这几样东西,就可以做得非常好吃了,这个是跟着黄磊老师的做法做的哦1:五花肉清洗

    生活 2021年10月22日