题解 | #【模板】栈# 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容器中的元素。从第一个到最后一个。
全部评论

相关推荐

评论
4
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务