恋上数据结构栈 Stack

Posted 结构化思维wz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了恋上数据结构栈 Stack相关的知识,希望对你有一定的参考价值。

GItee同步更新

五、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的主要内容,如果未能解决你的问题,请参考以下文章

数据结构:Stack

数据结构 ---[栈(stack) ]

我理解的数据结构—— 栈(Stack)

数据结构复习笔记系列2 — 栈

数据结构复习笔记系列2 — 栈

JavaScript实现栈结构(Stack)