全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

数据结构用两个栈实现一个队列的实例

数据结构用两个栈实现一个队列的实例

栈是先进后出,队列是先进先出

每次元素都push在st1中,pop的时候如果st2为空,将st1的栈顶元素放在st2的栈底,这样st1的所有元素都放在st2中,st1的栈底就是st2的栈顶,pop st2的栈顶,这样就满足了队列的先进先出。

#include <iostream>
using namespace std;
#include <stack>
#include <stdlib.h>

template <class T>
class SQueue {
public:
  void Push(const T& value);
  T Pop();
private:
  stack<T> st1;
  stack<T> st2;
};

template <class T>
T SQueue<T>::Pop()
{
  if (st2.size() <= 0)
  {
    if (st1.size() == 0)
    {
      exit(1);
    }
    while ((st1.size() > 0))
    {
      T& top = st1.top();
      st2.push(top);
      st1.pop();
    }
  }

  T head = st2.top();
  st2.pop();
  return head;

}

template <class T>
void SQueue<T>::Push(const T& value)
{
  st1.push(value);
}

int main()
{
  SQueue<int> sq;
  for (int i = 0; i < 10; ++i)
  {
    sq.Push(i);
  }
  for (int i = 0; i < 5; ++i) 
  {
    cout << sq.Pop() << " ";
  }

  for (int i = 0; i < 5; ++i) //分两次验证
  {
    cout << sq.Pop() << " ";
  }
  cout << endl;

  system("pause");
  return 0;
}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# 数据结构用两个栈实现一个队列  # 两个栈实现一个队列  # JavaScript数据结构学习之数组、栈与队列  # C++ 数据结构实现两个栈实现一个队列  # JavaScript数组实现数据结构中的队列与堆栈  # Java模拟栈和队列数据结构的基本示例讲解  # JavaScript数据结构与算法之栈与队列  # 栈和队列数据结构的基本概念及其相关的Python实现  # LinkedList学习示例模拟堆栈与队列数据结构  # C#数据结构与算法揭秘五 栈和队列  # 放在  # 两次  # 数据结构  # 希望能  # 谢谢大家  # 为空  # include  # lt  # iostream  # gt  # stack  # stdlib  # std  # namespace  # template  # java  # pop  # strong  # push  # class 


相关文章: 江苏网站制作公司有哪些,江苏书法考级官方网站?  建站之星安装步骤有哪些常见问题?  宝塔建站无法访问?如何排查配置与端口问题?  制作农业网站的软件,比较好的农业网站推荐一下?  如何做网站制作流程,*游戏网站怎么搭建?  大型企业网站制作流程,做网站需要注册公司吗?  网站好制作吗知乎,网站开发好学吗?有什么技巧?  潍坊网站制作公司有哪些,潍坊哪家招聘网站好?  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  宝塔Windows建站如何避免显示默认IIS页面?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  如何快速搭建高效可靠的建站解决方案?  陕西网站制作公司有哪些,陕西凌云电器有限公司官网?  建站168自助建站系统:快速模板定制与SEO优化指南  如何用搬瓦工VPS快速搭建个人网站?  微信推文制作网站有哪些,怎么做微信推文,急?  如何在建站之星绑定自定义域名?  免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?  如何处理“XML格式不正确”错误 常见XML well-formed问题解决方法  如何在宝塔面板中创建新站点?  名字制作网站免费,所有小说网站的名字?  建站主机如何选?高性价比方案全解析  唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?  Python多线程使用规范_线程安全解析【教程】  微信h5制作网站有哪些,免费微信H5页面制作工具?  广州美橙建站如何快速搭建多端合一网站?  早安海报制作网站推荐大全,企业早安海报怎么每天更换?  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  ,交易猫的商品怎么发布到网站上去?  小米网站链接制作教程,请问miui新增网页链接调用服务有什么用啊?  建站之星后台密码遗忘或太弱?如何重置与强化?  建站为何优先选择香港服务器?  在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?  如何制作算命网站,怎么注册算命网站?  php8.4新语法match怎么用_php8.4match表达式替代switch【方法】  如何在阿里云通过域名搭建网站?  青浦网站制作公司有哪些,苹果官网发货地是哪里?  如何快速生成凡客建站的专业级图册?  网站网页制作电话怎么打,怎样安装和使用钉钉软件免费打电话?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  如何用y主机助手快速搭建网站?  深入理解Android中的xmlns:tools属性  常州自助建站费用包含哪些项目?  深圳网站制作平台,深圳市做网站好的公司有哪些?  如何实现建站之星域名转发设置?  安徽网站建设与外贸建站服务专业定制方案  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  如何通过山东自助建站平台快速注册域名?  网站制作哪家好,cc、.co、.cm哪个域名更适合做网站? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。