1 .给出类类型如下:有两个成员变量,分别是两个stack容器,存放的元素类型是 int;stack的特点是:先进后出;而队列queue的特点是先进先出;现在用两个 stack容器来实现队列:
创新互联-专业网站定制、快速模板网站建设、高性价比云和网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式云和网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖云和地区。费用合理售后完善,10年实体公司更值得信赖。实现代码:
------------------------------------- ------------- queue.h --------------- #pragma once #include <iostream> #include <stdlib.h> #include <stack> using namespace std; class Queue { private: stack<int> s1; stack<int> s2; public: //入队 void Push(const int& val); //出队 void Pop(); //返回队首元素 int& Front(); //返回队尾元素 int& Back(); //判断队列是否为空 bool Empty(); //返回队列大小 int Size(); }; ---------------------------------------- ------------- queue.cpp ---------------- #include "queue.h" //入队 void Queue::Push(const int& val) { //栈s1作队列的队尾,s2作为队列的队头 s1.push(val); cout<<val<<" "; } //出队 void Queue::Pop() { while (!s1.empty()) { int val = s1.top(); s2.push(val); s1.pop(); } s2.pop(); } //返回队首元素 int& Queue::Front() { while (!s1.empty()) { s2.push(s1.top()); s1.pop(); } int temp = s2.top(); while (!s2.empty()) { int var = s2.top(); s1.push(var); s2.pop(); } return temp; } //返回队尾元素 int& Queue::Back() { return s1.top(); } //判断队列是否为空 bool Queue::Empty() { if (s1.empty()&&s2.empty()) { return true; } else return false; } //返回队列大小 int Queue::Size() { return s1.size()+s2.size(); } -------------------------------------- --------------- test.cpp ------------- #include "queue.h" void test() { Queue q1; cout<<"入队列操作:"<<endl; cout<<"插入的队列元素分别是:"<<endl; q1.Push(1); q1.Push(2); q1.Push(3); q1.Push(4); q1.Push(5); q1.Push(6); cout<<"判断队列是否为空!"<<endl; if (q1.Empty()) { cout<<"empty."<<endl; } else { cout<<"not empty."<<endl; } cout<<"获取队头元素:"<<endl; cout<<q1.Front()<<endl; cout<<"获取队尾元素:"<<endl; cout<<q1.Back()<<endl; cout<<"获取队列的大小操作:"<<endl; cout<<q1.Size()<<endl; printf("出队列操作:\n"); q1.Pop(); } int main() { test(); system("pause"); return 0; }
另外有需要云服务器可以了解下创新互联建站www.cdcxhl.com,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。
分享题目:C++基础学习之利用两个栈实现一个队列-创新互联
文章分享:https://www.cdcxhl.com/article26/pspjg.html
成都网站建设公司_创新互联,为您提供网站排名、手机网站建设、网站设计公司、虚拟主机、电子商务、关键词优化
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联