Stack 的操作|学习笔记

简介: 快速学习 Stack 的操作

开发者学堂课程【Java高级编程Stack 的操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/422


Stack 的操作

内容简介:

1、Stack类、栈的定义

2、栈的基本操作

3、栈的入栈和出栈的顺序规律

4、栈的逻辑结构

5、具体内容

1、Stack类、栈的定义:

栈是一种先进后出的数据结构。例如文本编辑器上都有的撤销功能,每次使用时,最后一次的编辑操作永远是最早、最先撤销。这个功能就是利用栈来实现,栈的基本操作形式如下:先设置有一个栈的空间,将操作数据输入栈里面,栈在整个过程之中,它分为两个概念,一个叫做栈顶,是栈的头部,一个叫做是栈底,是栈的尾部

基本上当数据对象进行保存的时候,新的数据会直接在栈底保存。

2、栈的基本操作

输入的数据一保存到栈底后再输入数据二数据二将会在数据一的上面依次类推,

所有操作数据,最终结果都在最上保存,而后,如果要进行出栈的操作,出过程中,最后保存的数据最先出去

例如在使用的浏览器时,最后一次操作总是最先回退。

浏览器中所有处理回退的过程,严格来讲都是栈的支持。

图片10.png

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 这个父类。

图片11.png

虽然栈这个结构,在现在开发中所写的情况比较少,但是栈这个数据结构依然是个重要的结构,是开发之中必不可少的操作。

 

 

相关文章
|
7月前
|
设计模式 存储 C++
C++:Stack和Queue的模拟实现
C++:Stack和Queue的模拟实现
|
7月前
|
存储 算法 C++
C++初阶--queue和stack
C++初阶--queue和stack
|
7月前
|
设计模式 存储 C++
C++初阶(十五)Stack和Queue
C++初阶(十五)Stack和Queue
66 0
|
2月前
|
存储 算法 C++
C++入门10——stack与queue的使用
C++入门10——stack与queue的使用
42 0
|
4月前
|
C++ 容器
【C++】stack与queue的使用以及模拟实现
【C++】stack与queue的使用以及模拟实现
|
5月前
|
设计模式 安全 数据管理
【c++】stack和queue模拟实现
【c++】stack和queue模拟实现
31 1
|
5月前
|
存储 调度 C++
|
6月前
|
C++ 容器
stack_queue:三个关键注意事项解析
stack_queue:三个关键注意事项解析
|
6月前
|
C++ 容器
【C++】学习笔记——stack和queue
【C++】学习笔记——stack和queue
28 0
|
7月前
|
设计模式 C++ 容器
stack和queue的模拟实现
stack和queue的模拟实现
54 0