#include<iostream> #include<stack> using namespace std; #define NUM 5 //仅用栈实现一个队列结构 class MyQueue { private: stack<int> *stackk,*help; public: MyQueue(); ~MyQueue(); void push(int element); int peek(); int pop(); void rotation(); }; MyQueue::MyQueue() { stackk = new stack<int>; help = new stack<int>; } MyQueue::~MyQueue() { delete stackk; delete help; } void MyQueue::push(int element) { stackk->push(element); //rotation(); } int MyQueue::peek() { if(help->empty()) { cout<<"队列中没有元素"<<endl; return -1; } rotation(); int ret = help->top(); return ret; } int MyQueue::pop() { if(help->empty() && stackk->empty()) { cout<<"队列中没有元素"<<endl; return -1; } rotation(); int ret = help->top(); help->pop(); return ret; } void MyQueue::rotation() { while(stackk->empty() == false && help->empty()) { help->push(stackk->top()); stackk->pop(); } } int main() { MyQueue m1; m1.push(1); m1.push(2); m1.push(3); m1.push(4); m1.push(5); for(int i=0;i<5;i++) cout<<m1.pop()<<endl; return 0; }
C++只用队列实现栈
猜你喜欢
转载自blog.csdn.net/u014228447/article/details/80726753
今日推荐
周排行