您的位置:首页 > 其它

重造轮子-栈实现队列

2015-09-19 22:46 148 查看
目标:用两个栈实现一个队列数据结构

方法:栈是先入后出,队列是先入先出。那么对于入队列就是,普通的压栈操作。对于返回队列首元素呢,则是将栈B的元素全部顺序出栈,压入栈A,然后再将栈A的栈顶元素出栈。对于弹出队首元素呢,则是与返回队列首元素的操作相同。

代码:

class Solution{
public:
void push(int num){
strDataTwo.push(num);
}
int front(){
int tmp;
if(strDataOne.empty() && strDataTwo.empty()){
cout<<"your queue is empty !!"<<endl;
return -1;
}
if(strDataOne.empty()){
while(!strDataTwo.empty()){
tmp = strDataTwo.top();
strDataTwo.pop();
strDataOne.push(tmp);
}
}
return strDataOne.top();
}
void pop(){
int tmp;
if(strDataOne.empty() && strDataTwo.empty()){
cout<<"your queue is empty !!"<<endl;
return;
}
if(strDataOne.empty()){
while(!strDataTwo.empty()){
tmp = strDataTwo.top();
strDataTwo.pop();
strDataOne.push(tmp);
}
}
strDataOne.pop();
}
private:
stack<int> strDataOne;
stack<int> strDataTwo;
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: