一、概述

  栈(stack):是线性表的一种,限制仅在线性表的一端进行插入和删除操作。其中允许插入和删除的一端称为栈顶(top),不允许插入和删除的一端称为栈底(bottom)。

  二、 顺序存储栈的基本操作以及算法实现

  基本操作:初始化、判断是否为空、求栈深、读取栈顶元素、出栈/入栈、栈置空等。

  抽象出栈的基本操作:

Java数据结构之栈stack_第1张图片

  栈的顺序存储数据结构Java实现:

Java数据结构之栈stack_第2张图片

  1.栈置空

Java数据结构之栈stack_第3张图片

  2.判断栈是否为空

Java数据结构之栈stack_第4张图片

  3.进栈操作

Java数据结构之栈stack_第5张图片

  4.出栈操作


Java数据结构之栈stack_第6张图片

  5.求栈深操作

  public int size(){

  return top;

  }

  6.读取栈顶元素

Java数据结构之栈stack_第7张图片

  三、链式存储栈的基本操作以及算法实现

  说明:顺序存储的栈使用简单,但必须事先分配一定大小的存储空间,分配大了可能会造成浪费,分配小了空间不够可能出现栈溢出异常,此时可考虑链表存储栈中的元素,这样既不会造成浪费又不会造成栈溢出。

  链式栈的结构如下:

Java数据结构之栈stack_第8张图片

  1.链栈的进栈操作

Java数据结构之栈stack_第9张图片

  2.链栈的出栈操作

Java数据结构之栈stack_第10张图片