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)

相关推荐

  • SpringBoot如何实现文件上传功能

    技术SpringBoot如何实现文件上传功能这篇文章主要介绍了SpringBoot如何实现文件上传功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。经典的

    攻略 2021年11月14日
  • 一语成,历史上有哪些一语成谶的事

    技术一语成,历史上有哪些一语成谶的事隶属于昆明陆军总司令部的第四方面军组建于1945年3月5日一语成,仅仅一个多月后,方面军司令官王耀武就指挥所部在湘西大破日寇,一举取得雪峰山大捷,8月在芷江出席日军投降的草签仪式,不久

    生活 2021年10月30日
  • microsoft exchange显示断开(microsoft exchange 服务器)

    技术Microsoft Exchange远程代码执行漏洞通告是怎么样的这期内容当中小编将会给大家带来有关Microsoft Exchange远程代码执行漏洞通告是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读

    攻略 2021年12月22日
  • 台湾云服务器租用选择台湾云服务器的优势

    技术台湾云服务器租用选择台湾云服务器的优势随着现在亚太地区海外云服务器的火爆,现在台湾云服务器的需求量也大增,下面就来谈谈选择台湾云服务器的五大理由更好的正常运行时间和可用性 与传统VPS不同,云服务器的可用性不取决于单

    礼包 2021年10月20日
  • mybatis的使用步骤

    技术mybatis的使用步骤 mybatis的使用步骤1.什么是mybatisMyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDB

    礼包 2021年11月19日
  • web3.js 和合约交互(web3.js 监控一个合约所有事件)

    技术如何解析web3.js调用智能合约如何解析web3.js调用智能合约,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。小编将用web3.js

    攻略 2021年12月14日