Java实现顺序栈原理的示例分析

  介绍

这篇文章给大家分享的是有关Java实现顺序栈原理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

<强>什么是栈

1。栈的英文是堆栈

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

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

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

<强>栈的应用场景

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

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

3。表达式的转换与求值

4 .二叉树的遍历

5。图形的深度优先搜索

<强>代码

<强>栈

package 堆栈;      public  class  ArrayStack  {   private 才能int 最大容量;//最大值   private 才能,int[],堆栈;//栈   private 才能;int 高层=1;//栈顶   ,,//才能构造器   public 才能;ArrayStack (int 最大尺寸),{   ,,,this.maxSize=最大容量;   ,,,堆栈=new  int [this.maxSize];   ,,}   ,,//栈才能满   public 才能;boolean  isFull (), {   ,,,return 最高==maxSize-1;   ,,}   ,,//栈才能空,,   public 才能;boolean  isEmpty (), {   ,,,return 最高==1;   ,,}   ,,//才能入栈推动   public 才能;void 推动(int 价值),{   ,,,//先判断是否栈满了   ,,,如果(isFull ()), {   ,,,,,System.out.println(“栈已经满了~“);   ,,,,,返回;   ,,,}else  {   ,,,,,前+ +;   ,,,,,堆栈(顶级)=价值;   ,,,}   ,,}   ,,//才能出栈的流行   public 才能;int  pop (), {   ,,,如果(isEmpty ()), {   ,,,,,throw  new  RuntimeException(“栈已经空了~“);   ,,,}   ,,,int 价值=https://www.yisu.com/zixun/stack(高级);   前,   返回值;   }//遍历栈      公共空间列表(){   如果(isEmpty ()) {   System.out.println(“栈空,没有数据~”);   }   (int i=,>=0;我——){   System.out.printf(“堆栈(% d)=% d/n”,我,堆栈[我]);   }   }   }

<>强测试类

package 堆栈;      import  java.util.Scanner;      public  class  TestArrayList  {      public 才能;static  void  main (String [], args), {   ,,,//,TODO  Auto-generated  method 存根   ,,,ArrayStack 堆栈=new  ArrayStack (4);   ,,,String 关键=啊?   ,,,boolean 循环=true;   ,,,Scanner 扫描仪=new 扫描仪(系统);   ,,,,(循环),{   ,,,,,System.out.println(“表明:显示栈“);   ,,,,,System.out.println(“退出:退出测试“);   ,,,,,System.out.println(“推:压栈“);   ,,,,,System.out.println(“流行:出栈“);   ,,,,,System.out.println(“请输入你的选择:“);   ,,,,,关键=scanner.next ();   ,,,,,switch (关键),{   ,,,,,case “show":   ,,,,,,,stack.list ();   ,,,,,,,休息;   ,,,,,case “push":   ,,,,,,,System.out.println(“请输入一个数:“);   ,,,,,,,int 价值=https://www.yisu.com/zixun/scanner.nextInt ();   stack.push(价值);   打破;   例“流行”:   尝试{   int res=stack.pop ();   System.out.printf(出栈的元素为:% d/n”(res);   }捕捉(异常e) {//TODO:处理异常   System.out.println (e.getMessage ());   }   打破;   “退出”:   scanner.close ();   循环=false;   打破;      默认值:   打破;   }   }   System.out.println(“程序退出!”);   }   }

感谢各位的阅读!关于“Java实现顺序栈原理的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

Java实现顺序栈原理的示例分析