数据结构-栈(一)数组模拟栈的实现

一.栈的概念

栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。(来源于百度百科)
对上述的概念进行总结得到栈的几个特征

  • 栈是线性表,但是栈的操作是受限的
  • 对栈的操作应该遵循先进后出,后进先出的规律
  • 允许插入删除的一段成为栈顶(top)
  • 固定的一段成为栈底(botton)
    数据结构-栈(一)数组模拟栈的实现_第1张图片
    栈的应用场景:
  • 子程序调用,堆栈
  • 递归调用
  • 表达式的转换(中缀表达式,后缀表达式)
  • 二叉树的遍历
  • 图形深度优先搜索算法

二.数组模拟栈思路分析

1.定义一个top来表示栈顶,初始化值为-1
数据结构-栈(一)数组模拟栈的实现_第2张图片

  • 入栈的操作,当有数据入栈时,top ++; stack[top] = data;
    数据结构-栈(一)数组模拟栈的实现_第3张图片
  • 出栈的操作,先使用变量取值int value = stack[top],然后top–;
    数据结构-栈(一)数组模拟栈的实现_第4张图片

三.代码实现

import java.util.Scanner;

public class ArrayStackDemo {
   
    public static void main(String[] args) {
   
        //创建栈对象
        ArrayStack stack = new ArrayStack(4);
        String key = "";
        boolean loop = true;
        Scanner scanner = new Scanner(System.

你可能感兴趣的:(数据结构,栈,数据结构,java,stack)