队列实现栈"/>
力扣225.用队列实现栈
原题链接:力扣225.用队列实现栈
思路:主要就是用队列模拟栈的操作
需要注意的点就是栈和队列数据结构的区别
栈是先进后出,队列是先进先出
也就代表如果队列要模拟栈,就要对队列实现移动元素位置的操作,这个要注意
全代码:
class MyStack {
public:MyStack() {}void push(int x) {// 将元素 x 压入栈顶。用单队列实现queuea.push(x);//将x先压入队列尾int len = queuea.size()-1;//获取队列总长度,但是减去1,因为移位置不需要移动刚添加进来的xwhile (len--) {//将队列头的元素逐步添加到队列尾,就成了旧元素不变,的以新元素x开头的队列queuea.push(queuea.front());queuea.pop();}}int pop() {//移除并返回栈顶元素if (!queuea.empty()) {//得到队列最先出的一个元素int a = queuea.front();//弹出queuea.pop();//返回弹出的元素return a;}else {//为空返回NULLreturn NULL;}}int top() {//返回栈顶元素。int a = queuea.front();return a;}bool empty() {//判断是否为空,空返回true,不为空返回falsereturn queuea.empty();}
private:queue<int> queuea;
};
更多推荐
力扣225.用队列实现栈
发布评论