网站设计排行榜,为新公司取名免费,自贡市住房和城乡建设局网站,wordpress改网站信息#x1f34e;道阻且长#xff0c;行则将至。#x1f353; #x1f33b;算法#xff0c;不如说它是一种思考方式#x1f340;算法专栏#xff1a; #x1f449;#x1f3fb;123 一、#x1f331;232. 用栈实现队列 题目描述#xff1a;请你仅使用两个栈实现先入先出队… 道阻且长行则将至。 算法不如说它是一种思考方式 算法专栏 123 一、232. 用栈实现队列 题目描述请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作push、pop、peek、empty 实现 MyQueue 类 void push(int x) 将元素 x 推到队列的末尾 int pop() 从队列的开头移除并返回元素 int peek() 返回队列开头的元素 boolean empty() 如果队列为空返回 true 否则返回 false 说明 你 只能 使用标准的栈操作 —— 也就是只有 push to top, peek/pop from top, size, 和 is empty 操作是合法的。 你所使用的语言也许不支持栈。你可以使用 list 或者 deque双端队列来模拟一个栈只要是标准的栈操作即可。 来源力扣LeetCode 难度简单 提示 1 x 9 最多调用 100 次 push、pop、peek 和 empty 假设所有操作都是有效的 例如一个空的队列不会调用 pop 或者 peek 操作
栈和队列
栈(STACK)是一种先进后出(LIFO)的数据结构。栈的操作有进栈(push)、出栈(pop)、栈是否空、查看栈顶元素。 队(QUEUE)列是一种先进先出(FIFO)的数据结构。操作有入队、出队、对空、队首。 例如不考虑异常时
class MyQueue {ListInteger myqueuenew ArrayList();public MyQueue() {}public void push(int x) {myqueue.add(x);}public int pop() {int xmyqueue.get(0);myqueue.remove(0);return x;}public int peek() {return myqueue.get(0);}public boolean empty() {return myqueue.isEmpty();}
}解题
1.栈实现队列操作
使用两个栈一个作为进一个作为出
class MyQueue {DequeInteger inStack;DequeInteger outStack;public MyQueue() {inStack new ArrayDequeInteger();outStack new ArrayDequeInteger();}public void push(int x) {inStack.push(x);}public int pop() {if (outStack.isEmpty()) {in2out();}return outStack.pop();}public int peek() {if (outStack.isEmpty()) {in2out();}return outStack.peek();}public boolean empty() {return inStack.isEmpty() outStack.isEmpty();}private void in2out() {while (!inStack.isEmpty()) {outStack.push(inStack.pop());}}
}赵客缦胡缨吴钩霜雪明。银鞍照白马飒沓如流星。——李白返回第一页。☝ ☕物有本末事有终始知所先后。 ☝☝☝☝☝我的CSDN☝☝☝☝☝☝