开发者学堂课程【Java高级编程:Stack 的操作】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/422
Stack 的操作
内容简介:
1、Stack类、栈的定义
2、栈的基本操作
3、栈的入栈和出栈的顺序规律
4、栈的逻辑结构
5、具体内容
1、Stack类、栈的定义:
栈是一种先进后出的数据结构。例如文本编辑器上都有的撤销功能,每次使用时,最后一次的编辑操作永远是最早、最先撤销。这个功能就是利用栈来实现,栈的基本操作形式如下:先设置有一个栈的空间,将操作数据输入栈里面,栈在整个过程之中,它分为两个概念,一个叫做栈顶,是栈的头部,一个叫做是栈底,是栈的尾部。
基本上当数据对象进行保存的时候,新的数据会直接在栈底保存。
2、栈的基本操作
输入的数据一保存到栈底后再输入数据二,数据二将会在数据一的上面,依次类推,
所有的操作数据,最终结果都是在最上保存,而后,如果要进行出栈的操作,出栈过程中,最后保存的数据最先出去。
例如在使用的浏览器时,最后一次操作总是最先回退。
浏览器中所有处理回退的过程,严格来讲都是栈的支持。
3、栈的入栈和出栈的顺序规律
在 Java 程序里面使用 Stack 描述我们栈的操作。
这个类的定义如下:
public class Stack
extends Vector
Stack 是 Vector 的一个子类,但是它使用的并不是 Vector 类之中所提供的方法,而是采用如下的两个方法:
·入栈:public E push(E item);
·出栈:public E pop()
4、栈的逻辑结构
范例:实现栈的操作
操作的代码如下
1 package cn. mldn. demo;
2
3 import java.util.stack;
4
5 public class JavaAPIDemo {
6 public static void main(String[ ] args) throws Exception {
7 Stack all = new Stack();
8 all. push("A") ;
9 all.push("B") ;
10 all.push("C") ;
11 System. out. println(all.pop());
12 System. out . println(all. pop());
13 System. out . println(all. pop());
14 System. out . println(all.pop()); //
无数据、EmptyStackException
15 }
16 }
C
B
A
Exception in thread "main" java . util .EmptyStackException
at java. base/java . util . Stack . peek(Stack . java:102)
at java. base/java . util . Stack.pop(Stack.java:84)
at cn. mldn. demo .JavaAPIDemo . main(JavaAPIDemo. java:14 )
通过此时的操作可以发现,所有数据保存之后,将按照倒序的形式进行弹出,如果栈已经空了,则会抛出空栈异常。
5、具体内容
在开发过程中,这是栈的一个基本使用。
要了解栈的继承结构,先得找到 Vector 类的继承结构,在整个的操作里面,Stack 是一个操作子类,继承自 Vector 这个父类。
虽然栈这个结构,在现在开发中所写的情况比较少,但是栈这个数据结构依然是个重要的结构,是开发之中必不可少的操作。