上一小节我介绍了数组这种数据结构,并且二次封装了数组,可以添加元素、删除元素、查看元素等等,这一节我主要介绍栈和队列。
栈也是一种线性结构,相比数组来说,栈的操作会少一些,只能从一端添加元素和取出元素,后进先出LIFO,这一端被称为栈顶。
一、java中的栈Stack,后进先出
在上一小节实现的数组上,如果我可以从数组尾添加元素和数组尾删除元素,那么此时数组就可以当作一个栈来使用了。
现在我来介绍java内置的栈Stack这种数据结构。
public static void main(String[] args) {
Stack<String> stack = new Stack<String>();
stack.push("a"); // 进栈
stack.push("b");
System.out.println(stack); // [a, b]
System.out.println(stack.pop()); // 出栈 b
System.out.println(stack); // [a]
System.out.println(stack.peek()); // 查看栈顶 a
System.out.println(stack); // [a]
}
二、java中的队列Queue,先进先出
队列是元素每次都加到一端,从另一端取出,先进先出。
public static void main(String[] args) {
Queue<String> queue=new LinkedList<String>();
queue.offer("a"); // 添加元素
queue.offer("b");
queue.offer("c");
System.out.println(queue); // [a, b, c]
System.out.println(queue.poll()); // 取出元素 a
System.out.println(queue); // [b, c]
System.out.println(queue.peek()); // 查看下一个该取出的元素
System.out.println(queue); // [b, c]
}