这篇文章主要讲解了“如何用Stacks实现Queue”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何用Stacks实现Queue”吧!
题目: 用Stacks实现Queue。
思路: Queue是先进先出FIFO,Stack是先进后出FILO。使用Stack模拟实现Queue的功能,可以使用两个Stack,一个进行入Stack操作,一个进行出Stack操作。这两个Stack中的元素位置是颠倒的。比如,一个元素在第一个Stack位于Stack头,那么这个元素在另一个Stack则位于Stack尾。
Language : cpp
class MyQueue {public:
stack<int> input, output;/** Push element x to the back of queue. */void push(int x) {
input.push(x);
}/** Removes the element from in front of queue and returns that element. */int pop() {int a = peek();
output.pop();return a;
}/** Get the front element. */int peek() {if(output.empty()){while(input.size()){
output.push(input.top());
input.pop();
}
}return output.top();
}/** Returns whether the queue is empty. */bool empty() {return input.empty() && output.empty();
}
};/**
* Your MyQueue object will be instantiated and called as such:
* MyQueue obj = new MyQueue();
* obj.push(x);
* int param_2 = obj.pop();
* int param_3 = obj.peek();
* bool param_4 = obj.empty();
*/
感谢各位的阅读,以上就是“如何用Stacks实现Queue”的内容了,经过本文的学习后,相信大家对如何用Stacks实现Queue这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/u/4890645/blog/4807038