恋上数据结构栈 Stack
Posted 结构化思维wz
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了恋上数据结构栈 Stack相关的知识,希望对你有一定的参考价值。
五、Stack 栈
栈是一种特殊的线性表,只能在一端进行操作。
- 往栈中添加元素的操作,一般叫做
push
入栈 - 从栈中移除元素的操作,一般叫做
pop
出栈(只能移除栈顶元素,也叫弹出栈顶元素) - 先进后出的原则
1.栈接口的设计
栈中最频繁的操作就是在尾部做一些操作,所以用动态数组和双向链表的复杂度差不多O(1)。
2.手写Stack
package 栈和队列;
import java.util.ArrayList;
import java.util.EmptyStackException;
import java.util.List;
/**
* @ClassName: Stack
* @Description: 栈的写法
* @author: wangz48
* @date: 2021-12-29 14:26
*/
public class Stack<E>
/**
* 用来装数据
*/
private List<E> list = new ArrayList<>();
/**
* 栈的大小
*/
public int size()
return list.size();
/**
* 栈是否为空
*/
public boolean isEmpty()
return list.isEmpty();
/**
* 入栈
*/
public void push(E element)
list.add(element);
/**
* 出栈
*/
public E pop()
return list.remove(size()-1);
/**
* 查看栈顶元素JDK==pick()
*/
public E top()
return list.get(size()-1);
测试:
public class StackTest
public static void main(String[] args)
Stack<Integer> stack = new Stack<>();
stack.push(6);
stack.push(7);
stack.push(8);
stack.push(9);
stack.push(1);
while(!stack.isEmpty())
System.out.println(stack.pop());
3.应用实例
浏览器的前进后退
后退:
前进:
以上是关于恋上数据结构栈 Stack的主要内容,如果未能解决你的问题,请参考以下文章