Java中顺序栈的实现原理是什么

本篇文章给大家分享的是有关Java中顺序栈的实现原理是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

成都创新互联公司专注于滨江网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供滨江营销型网站建设,滨江网站制作、滨江网页设计、滨江网站官网定制、小程序制作服务,打造滨江网络公司原创品牌,更为您提供滨江网站排名全网营销落地服务。

什么是栈

1.栈的英文是stack

2.栈是一个先入后出的有序列表

3.栈是限制线性表元素的插入和删除只能在线性表的同一端进行的一种特殊的线性表,允许插入和删除的一端是,为变化的一端,成为栈顶,另外的一端为固定的一端为栈底

4.栈的定义可知,最先放入栈中的元素在栈底,最后放入的元素在栈顶,而删除的情况刚好相反,最后放入的元素先删除,最先放入的元素后删除

栈的应用场景

1.子程序的调用,在跳向子程序之前会先将下一条指令的地址存放在堆栈中,直到子程序执行后再将地址取出,最后回到原来的程序之中

2.递归的调用,和子程序的调用类似,只是出了存储下一个指令的地址外,也将参数、区域变量、等数据压入栈中

3.表达式的转换与求值

4.二叉树的遍历

5.图形的深度优先搜索

代码

package stack;public class ArrayStack {  private int maxSize;//最大值  private int[] stack;//栈  private int top=-1;//栈顶    //构造器  public ArrayStack(int maxSize) {    this.maxSize=maxSize;    stack=new int[this.maxSize];  }    //栈满  public boolean isFull() {    return top==maxSize-1;  }    //栈空    public boolean isEmpty() {    return top==-1;  }    //入栈-push  public void push(int value) {    //先判断是否栈满了    if(isFull()) {      System.out.println("栈已经满了~");      return;    }else {      top++;      stack[top]=value;    }  }    //出栈-pop  public int pop() {    if(isEmpty()) {      throw new RuntimeException("栈已经空了~");    }    int value=stack[top];    top--;    return value;  }    //遍历栈    public void list() {    if(isEmpty()) {      System.out.println("栈空,没有数据~");    }    for(int i=top;i>=0;i--) {      System.out.printf("stack[%d]=%d\n",i,stack[i]);    }  }}

测试类

package stack;import java.util.Scanner;public class TestArrayList {  public static void main(String[] args) {    // TODO Auto-generated method stub    ArrayStack stack=new ArrayStack(4);    String key="";    boolean loop=true;    Scanner scanner=new Scanner(System.in);    while(loop) {      System.out.println("show:显示栈");      System.out.println("exit:退出测试");      System.out.println("push:压栈");      System.out.println("pop:出栈");      System.out.println("请输入你的选择:");      key=scanner.next();      switch (key) {      case "show":        stack.list();        break;      case "push":        System.out.println("请输入一个数:");        int value=scanner.nextInt();        stack.push(value);        break;      case "pop":        try {          int res=stack.pop();          System.out.printf("出栈的元素为:%d\n",res);        } catch (Exception e) {          // TODO: handle exception          System.out.println(e.getMessage());        }        break;      case "exit":        scanner.close();        loop=false;        break;      default:        break;      }    }    System.out.println("程序退出!");  }}

以上就是Java中顺序栈的实现原理是什么,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注创新互联行业资讯频道。


文章名称:Java中顺序栈的实现原理是什么
分享网址:http://cdiso.cn/article/gcocgi.html

其他资讯