欢迎光临
我们一直在努力

225. 用队列实现栈

思路

题目要求使用队列来模拟栈操作,实现一个栈数据结构,我用的是单队列。

push()在栈顶添加元素,即在队尾添加元素。

pop()删除栈顶,旋转队列实现栈的后进先出特性。

top()查询栈顶,直接返回队尾元素。

empty()检查栈是否为空,即检查队列是否为空。

时间复杂度较高但空间复杂度为O(n)。

代码

int q[10010],s=1,w=0;
MyStack() {

}
void push(int x) {
w++;
q[w]=x;
}
int pop() {
int x=top();
for(int i=1;i<=w-s;i++) {
w++;
q[w]=q[s];
s++;
}
s++;
return x;
}
int top() {
return q[w];
}
bool empty() {
if(w-s<0) {
return 1;
}
return 0;
}
};

赞(0)
未经允许不得转载:171主机测评 » 225. 用队列实现栈
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址