问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何用两个栈来实现一个队列,并分析有关队列操作的运行时间。_百度知 ...

发布网友 发布时间:2022-05-13 03:06

我来回答

1个回答

热心网友 时间:2022-04-22 17:53

队列的操作主要有:入队,出队,返回队列长度,返回队首元素,判断队列是否为空。 代码实现如下所示: #include <stack> #include <string> #include <iostream> #include <cassert> usingnamespace std; template <class T> class YL_Queue { public: void enqueue(const T &element); //入队 T dequeue(); //出队 T top(); //队首元素bool empty() const; //判断队列是否为空 size_t size() const; //队列的尺寸大小private: stack<T> inStack; stack<T> outStack; }; template <class T> void YL_Queue<T>::enqueue(const T &element) { inStack.push(element); } template <class T> T YL_Queue<T>::dequeue() { assert(!empty()); T temp; if (!outStack.empty()) { temp=outStack.top(); outStack.pop(); return temp; } else { while(!inStack.empty()) { temp=inStack.top(); inStack.pop(); outStack.push(temp); } temp= outStack.top(); outStack.pop(); return temp; } } template <class T> T YL_Queue<T>::top() { assert(!empty()); T temp; if (!outStack.empty()) { temp=outStack.top(); return temp; } else { while(!inStack.empty()) { temp=inStack.top(); inStack.pop(); outStack.push(temp); } temp= outStack.top(); return temp; } } template <class T> bool YL_Queue<T>::empty() const { return (size()==0); } template <class T> size_t YL_Queue<T>::size() const { return inStack.size()+outStack.size(); } void main() { YL_Queue<int> myqueue; myqueue.enqueue(1); myqueue.enqueue(2); myqueue.enqueue(3); myqueue.enqueue(4); myqueue.enqueue(5); cout<<"1队列的大小为: "<<myqueue.size()<<endl; cout<<"1队首的元素为: "<<myqueue.top()<<endl; myqueue.dequeue(); myqueue.dequeue(); cout<<"2队列的大小为: "<<myqueue.size()<<endl; cout<<"2队首的元素为: "<<myqueue.top()<<endl; myqueue.dequeue(); myqueue.dequeue(); myqueue.dequeue(); cout<<"3队列的大小为: "<<myqueue.size()<<endl; }
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
Linux系统安装FTP服务器 Linux系统的网络文件共享 建筑的七盏明灯的内容简介 面向对象设计七大原则 简单说 交互设计七大定律 交互设计的“根”——七大定律 交互设计原则和理论2——七大定律 七大设计原则 附近的加油站有哪些 附近的加油站有哪些地方 朝鲜族都有啥礼仪? 青岛妈妈怎么给孩子过百岁宴,需要注意些什么 儿子还有几天百日宴 周公百岁酒的注意事项 儿子百日宴当天,我的兄弟和他老婆能住我家里吗 做百岁-阴寿要不要吃饭前下拜 孕妇能参加百日宴吗 华为699元以下手机型号有哪些? 孕妇可以参加百日宴吗? 不是好友怎么解封? 10月初八可以做百日宴吗? 封了,要求好友解封,不是好友能解封吗? 一百天宝宝有哪些禁忌 百日宴注意事项须知 799元可以买什么手机 封了怎么解封对方不是好友可以解封嘛 马桶标准尺寸是多少?一般家庭用的马桶,坑距是多少呢? 马桶尺寸及周边尺寸是什么? oppo如何恢复系统软件? 手机拼音怎么弄不出来 为什么在手机上输入拼音声调时,按符屏幕出现不了拼音栏? 已经故去的老人做百岁佛事,外人可以去吗? C++中怎样用两个栈实现一个对列? 如何申请不用手机号注册 用C实现两个栈实现一个队列的问题!!一直报告段错误,求高手! 无需手机号怎么注册? 租房协议怎么写?办营业执照的 不用手机号怎么申请注册新账号 无需手机号怎么注册? 一份租房协议可以办两个营业执照吗? 没有手机号怎么申请新的 没有手机号怎么申请? 不用手机号码不用号怎么注册 怎么不用手机号注册一个新的 加名字:邱玥悦、邱悦玥,玥字写那个位置中间后边,玥悦、排中间玥悦位置好_百度问一问 初学电脑,从什么开始,怎样学会快速打字 帮别人微信辅助一定要输银行卡后8位吗 我用微信给别人辅助验证,要填银行卡后8位数字吗 铁皮顶怎么安装吊扇 这个苹果手机壁纸在哪里下载呢? 电脑桌面主题图标