Java 数据结构 & 算法宁可累死自己, 也要卷死别人 5 栈

Posted 我是小白呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 数据结构 & 算法宁可累死自己, 也要卷死别人 5 栈相关的知识,希望对你有一定的参考价值。

【Java 数据结构 & 算法】⚠️宁可累死自己, 也要卷死别人 5⚠️ 栈

概述

从今天开始, 小白我将带大家开启 Jave 数据结构 & 算法的新篇章.

栈 (Stack) 是一种运算受限的线性表, 遵循先进后出的原则 (Last-In-First-Out). 举个例子, 当我们灌调料的时候, 后灌进去的调料会先被使用.


栈只能在表尾部进行插入和删除的操作. 开口的一端被称为栈顶, 另一端则被称为栈底. 如图:

栈实现

push 方法

栈 (Stack) 的 push 方法, 把项压入栈顶部.

代码:

// push方法
public void push(E element)
    array.add(array.size(), element);

pop 方法

栈 (Stack) 的 pop 方法, 移除栈顶对象并返回.

代码:

// pop方法
public E pop()

    E element = array.get(array.size() - 1);
    array.remove(array.size() - 1);

    return element;

main

public static void main(String[] args) 
	// 创建栈
    Stack<Integer> stack = new Stack<>();
    
	// push5个元素
    for (int i = 0; i < 5; i++) 
        stack.push(i);
        System.out.println(stack);
    
	
	// pop 5个元素
    for (int i = 0; i < 5; i++) 
        stack.pop();
        System.out.println(stack);
    

输出结果:

stackarray=[0]
stackarray=[0, 1]
stackarray=[0, 1, 2]
stackarray=[0, 1, 2, 3]
stackarray=[0, 1, 2, 3, 4]
stackarray=[0, 1, 2, 3]
stackarray=[0, 1, 2]
stackarray=[0, 1]
stackarray=[0]
stackarray=[]

完整代码

import java.util.ArrayList;

public class Stack<E> 

    private ArrayList<E> array;

    // 无参构造
    public Stack() 
        array = new ArrayList();
    

    // 有参构造
    public Stack(int capacity)
        array = new ArrayList(capacity);
    

    // push方法
    public void push(E element)
        array.add(array.size(), element);
    

    // pop方法
    public E pop()

        E element = array.get(array.size() - 1);
        array.remove(array.size() - 1);

        return element;
    

    @Override
    public String toString() 
        return "stack" +
                "array=" + array +
                '';
    

    public static void main(String[] args) 
        
        // 创建栈
        Stack<Integer> stack = new Stack<>();

        // push5个元素
        for (int i = 0; i < 5; i++) 
            stack.push(i);
            System.out.println(stack);
        

        // pop5个元素
        for (int i = 0; i < 5; i++) 
            stack.pop();
            System.out.println(stack);
        
    

以上是关于Java 数据结构 & 算法宁可累死自己, 也要卷死别人 5 栈的主要内容,如果未能解决你的问题,请参考以下文章

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 20 排序算法

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 18 贪心算法

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 18 贪心算法

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 17 KMP 算法

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 17 KMP 算法

Java 数据结构 & 算法宁可累死自己, 也要卷死别人 10 哈希实现