博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
由两个栈组成队列
阅读量:6267 次
发布时间:2019-06-22

本文共 1736 字,大约阅读时间需要 5 分钟。

【说明】:

  本文是左程云老师所著的《程序员面试代码指南》第一章中“由两个栈组成的队列”这一题目的C++复现。

  本文只包含问题描述、C++代码的实现以及简单的思路,不包含解析说明,具体的问题解析请参考原书。

  感谢左程云老师的支持。

【题目】:

  编写一个类,用两个栈实现队列,支持队列的基本操作(push、pop、front)。

【思路】:

  一个栈作为数据的压如栈,一个栈作为数据的弹出栈。

【编译环境】:

  CentOS6.7(x86_64)

  gcc 4.4.7

【实现】:

  1、声明代码

/* *文件名:twoStaToQue.h *作者: *摘要:利用两个栈实现队列 */#ifndef _TWOSTATOQUE_H#define _TWOSTATOQUE_H#include
using namespace std;class twoStaToQue{public: void push(int data); void pop(); int front();private: stack
spush; stack
spop;};#endif
View Code

  2、实现代码

/* *文件名:twoStaToQue.cpp *作者: *摘要:利用两个栈实现一个队列 */#include "twoStaToQue.h"#include 
void twoStaToQue::push(int data){ spush.push(data); return ;}void twoStaToQue::pop(){ if(spop.empty() && spush.empty()) throw runtime_error("Empty Queue!"); else if(spop.empty()) { while(!spush.empty()) { int tmp = spush.top(); spop.push(tmp); spush.pop(); } } spop.pop(); return ;}int twoStaToQue::front(){ if(spop.empty() && spush.empty()) throw runtime_error("Empty Queue!"); else if(spop.empty()) { while(!spush.empty()) { int tmp = spush.top(); spop.push(tmp); spush.pop(); } } return spop.top();}
View Code

  3、测试代码

/* *文件名:test.cpp *作者: *摘要:两个栈实现一个队列的测试代码 */#include "twoStaToQue.h"#include 
int main(){ int a[]={
3,4,5,1,2,1}; twoStaToQue q; int i; for(i=0;i<3;i++) { q.push(a[i]); } cout << "q.front():" << q.front() <
View Code

 

注:

  转载请注明出处;

  转载请注明源思路来自于左程云老师的《程序员代码面试指南》。

转载于:https://www.cnblogs.com/PrimeLife/p/5314204.html

你可能感兴趣的文章
oracle数据库从入门到精通之四
查看>>
自定义圆形图片控件
查看>>
sharepoint 2013 补丁升级步骤
查看>>
asp.net core 2.0 web api基于JWT自定义策略授权
查看>>
Skype for Business Server 2015-04-前端服务器-3-安装-管理工具
查看>>
第12章代码《跟老男孩学习Linux运维:Shell编程实战》
查看>>
我们为什么从Python转到go?
查看>>
5.Azure负载均衡(上)
查看>>
轻松精通awk数组企业问题案例
查看>>
26.Azure备份服务器(下)
查看>>
从“网上说的能信么”说开去---学习的思考
查看>>
DHCP 日志分析
查看>>
.NET Micro Framework动态调用C/C++底层代码(原理篇)
查看>>
Windows Server 2012正式版RDS系列⒃
查看>>
Shell脚本之awk篇
查看>>
微软发布Azure Stack硬件需求
查看>>
python socket编程详细介绍
查看>>
Windows Server 2016第三个技术预览版新技术
查看>>
Everything 本地磁盘文件搜索工具下载!
查看>>
Python dict(字典) 详细总结
查看>>