美文网首页
线性表之栈

线性表之栈

作者: code希必地 | 来源:发表于2020-12-31 16:50 被阅读0次

1、简介

栈是一种特殊的线性表,只能在一端进行操作。栈有以下特征:

  • 1、向栈中添加元素的操作,一般叫push,入栈
  • 2、从栈中删除元素的操作,一般叫pop,出栈只能移除栈顶元素,也叫弹出栈顶元素。
  • 3、后进先出的原则,LIFO
    image.png

2、栈的接口设计

根据栈的特性,在栈中可以定义如下方法

public int size(); //元素的数量
    
public boolean isEmpty() ; //是否为空

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

public E pop();//出栈

public E top();//获取栈顶元素

public void clear();//清空元素

根据栈的特性,我们在栈的内部可以使用数组或链表来实现。根据栈的特性可知,一直操作的都是尾部的元素,所以使用数组或链表来实现其复杂度都是O(1),下面看下内部使用数组来实现。

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(list.size() - 1);
    }

    // 获取栈顶元素
    public E top() {
        return list.get(list.size() - 1);
    }

    // 清空元素
    public void clear() {
        list.clear();
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append("size=" + size()+" ");
        while (!isEmpty()) {
            sb.append(pop()).append(",");
        }
        return sb.toString();
    }

}

相关文章

  • Java:栈、队列、双向队列、优先队列

    一、栈 1.什么是栈? 栈stack是一种特殊的线性表,这种线性表只能在固定一端(通常认为是线性表的尾端)进行插入...

  • 数据结构之栈的顺序存储结构

    栈的定义 栈是一种特殊的线性表,因为它相对于一般线性表,对它的操作有限制,栈只允许在栈顶(线性表的固定一端)进行插...

  • 栈与队列

    栈 栈是限定仅在表尾进行插入和删除操作的线性表。 栈又称为后进先出(Last In First Out )的线性表...

  • 数据结构(三):栈

    栈概念 栈是仅在表尾(栈顶)进行插入和删除操作的线性表,是后进先出的线性表,简称 LIFO 结构,不含任何元素的栈...

  • 数据结构

    线性表 线性表分为顺序表与链表 栈和队列 栈:先进后出队列:先进先出栈和队列都是线性表的特征形式 二叉树 对于相对...

  • 数据结构之栈和队列

    一、栈 1.1 栈的定义 栈(Stack):只允许在一端进行插入或删除操作的线性表。首先栈是一种线性表,但是限定这...

  • 【数据结构】栈和队列之栈各种操作

    栈的定义 栈实际上也是线性表,只不过是一种特殊的线性表。其特殊性在于栈的基本操作是线性表操作的子集,他们的操作受限...

  • 线性表之栈

    //TODO

  • 线性表之栈

    1、简介 栈是一种特殊的线性表,只能在一端进行操作。栈有以下特征: 1、向栈中添加元素的操作,一般叫push,入栈...

  • 栈详解(Java实现)

    简介 给线性表的操作加上限定,只能从末尾删除(出栈),添加(入栈)。这种特殊的线性表就叫做栈(stack)又称后进...

网友评论

      本文标题:线性表之栈

      本文链接:https://www.haomeiwen.com/subject/jfrloktx.html