数据结构与算法(六):栈

数据结构与算法 2020-03-26 93 次浏览 本文字数:1329字

本文主要内容: 栈的实现

  1. 栈是一种特殊的线性表,只能在一端进行操作

  2. 往栈中添加元素的操作,叫做入栈,push

  3. 往栈中删除元素的操作,叫做出栈,pop(只能删除栈顶元素)

  4. 栈的内部实现可以使用动态数组或链表实现

  5. 栈的主要操作是在尾部进行添加或删除元素

  6. 后进先出原则:Last In First Out(LIFO)

栈的基本展示

栈的接口设计

  1. public lit size(); //元素数量

  2. public boolean isEmpty(); //是否为空

  3. public void push(E element); //入栈

  4. public void pop(); //出栈

  5. public E peek(); //获取栈顶元素

  6. public void clear(); //清空栈

栈的实现

public class Stack<E> {
    // 使用动态数组存储数据
    private ArrayList<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(list.size() - 1);
    }
    public E peek() {
        // 查看栈顶元素, 就是查看列表中的最后一个元素
        return list.get(list.size() - 1);
    }
    public void clear() {
        // 清空栈, 就是清空列表
        list.clear();
    }
}

本文由 WarlockMarten 创作,采用 知识共享署名 3.0,可自由转载、引用,但需署名作者且注明文章出处。