首页 > 编程语言 > 详细

两个栈实现队列的插入和删除(C++实现)

时间:2020-08-29 19:13:46      阅读:103      评论:0      收藏:0      [点我收藏+]

代码:

#include <iostream>
#include <stack>
using::std::stack;
class Cqueue
{
public:
  stack<int>stack1,stack2;
  Cqueue(){};//构造函数;
  void appendTail(int val)
  {
    stack1.push(val);
  }
  int deleteHead()
  {
    if(stack1.empty())
    {
      return -1;
    }
    else
    {
      while(!stack1.empty())
      {
        int tem = stack1.top();
        stack1.pop();
        stack2.push(tem);
      }
      int deleteH = stack2.top();
      stack2.pop();
      while(!stack2.empty())
      {
        int temD = stack2.top();
        stack2.pop();
        stack1.push(temD);
      }
    std::cout << deleteH << ‘\n‘;
    return deleteH;
    }
  }
};
int main()
{
  Cqueue q;
  for(int i=1;i<5;i++)
  {
    q.appendTail(i);
  }
  std::cout << "stack1中的元素:" << ‘\n‘;
  for(int i=1;i<5;i++)
  {
    int tem = q.stack1.top();
    q.stack1.pop();
    std::cout << tem << ‘ ‘;
  }
  std::cout << ‘\n‘;
  for(int i=1;i<5;i++)
  {
    q.appendTail(i);
  }
  q.deleteHead();
}

 测试结果:

技术分享图片

 

两个栈实现队列的插入和删除(C++实现)

原文:https://www.cnblogs.com/shiheyuanfang/p/13583037.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!