题解 | #【模板】栈# Java 正常Deque 方法总结
【模板】栈
http://www.nowcoder.com/practice/104ce248c2f04cfb986b92d0548cccbf
Deque双端队列 Deque queue = new LinkedList()
三种方式:
普通队列(一端进另一端出):
Queue queue = new LinkedList()或Deque deque = new LinkedList()
双端队列(两端都可进出)
Deque deque = new LinkedList()
堆栈
Deque deque = new LinkedList()
import java.util.Deque;
import java.util.LinkedList;
import java.util.Scanner;
public class 栈 {
public static void main(String[] args) {
Deque<Integer> queue = new LinkedList<Integer>();//双向链表
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
String str;
while(n-- > 0) {
str = sc.next();
if("push".equals(str)) {
int t = sc.nextInt();
queue.push(t);
}else if("pop".equals(str)) {
if(queue.isEmpty()) {
System.out.println("error");
}else {
System.out.println(queue.peek());
queue.pop();
}
}else if("top".equals(str)) {
if(queue.isEmpty()) {
System.out.println("error");
}else
System.out.println(queue.peek());
}
}
}
}
本题方法:
isEmpty():判断是否为空
push():添加到栈顶
pop():移除栈顶元素
peek():查看栈顶元素
总结方法(Ctrl点进去就可以看见,每个方法上面都有注释):
addFirst(E e):指定的元素插入到该deque的前面。 当使用容量受限的deque时,通常最好使用offerFirst方法。<-->push()
addLast(E e): 指定的元素插入到该deque的末尾, 当使用容量受限的deque时,通常最好使用offerLast方法。 等价add()
offerFirst(E e):指定的元素插入到该deque容器的前面
offerLast(E e):指定的元素插入到该deque容器的后面 <-->offer(E e)、
removeFirst(); 获取并移除deque容器的第一个元素。 如果deque为空,则抛出异常 <-->remove()、pop()
removeLast(); 获取并移除deque容器的最后一个元素。
pollFirst() :移除该deque容器的第一个元素,如果该deque容器为空则返回null <--> poll()
pollLast() : 移除该deque容器的最后一个元素,如果该deque容器为空则返回null。
getFirst(): 获取此deque容器的第一个元素,但不删除,抛异常 <--> element()
getLast(): 获取此deque容器的最后一个元素,但不删除,抛异常
peekFirst(): 获取此deque容器的第一个元素,但不删除,如果此deque容器为空,则返回null <-->peek()
peekLast():获取此deque容器的最后一个元素,但不删除,如果此deque容器为空,则返回null。
removeFirstOccurrence(Object o); 从deque容器中删除指定元素的第一个匹配项。 如果deque容器中不包含该元素,则该元素不变。
removeLastOccurrence(Object o);从deque容器中删除指定元素的最后一个匹配项。 如果deque容器中不包含该元素,则该元素不变。
addAll(Collection<? extends E> c):将指定集合中的所有元素添加到这个deque容器的末尾
int size(): 返回deque容器中元素的个数。
boolean contains(Object o):如果此deque容器包含指定的元素则返回true
Iterator<E> iterator(): 返回一个迭代器,以正确的顺序遍历该deque容器中的元素。从第一个到最后一个。