Java怎么使用一维数组来模拟栈的实现
本文小编为大家详细介绍“Java怎么使用一维数组来模拟栈的实现”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么使用一维数组来模拟栈的实现”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
思路先进后出,优先解决压栈的问题,之后解决弹栈和main方法
功能随时模拟压栈
随时模拟弹栈
防止异常和各种错误
随时可以遍历“栈”中存在的变量的方法,压栈弹栈栈帧清晰可见!
源码:importjava.util.Scanner;publicclassMoveTest01{//局部变量供栈方法的遍历数组使用staticinti;//创建Object[]数组,作为栈,并且限制“内存上限”为5;staticObject[]os=newObject[5];//创建数组,模拟入栈staticnum[]l={newA(),newB(),newC(),newD(),newE(),newF()};publicstaticvoidmain(String[]args){inta=0;//遍历Object[]数组时的控制booleanc=true;//控制循环booleand=true;//检测栈内存使用量防止异常Scanners=newScanner(System.in);do{System.out.println("===========================");System.out.print("请选择”压栈““弹栈”或“列出栈内存中储存的变量指向的方法”,输入“退出”将会结束程序!:");Stringz=s.next();//判定用户输入if(z.equals("压栈")){//防止数列超限if(a>(os.length-1)){d=false;System.out.println("栈内存已满!请弹栈后压栈!");}if(d){//调用num[]数组模拟入栈l[a].leng();a++;}//防止if(d)锁死d=true;}elseif(z.equals("弹栈")){//调用pop方法,模拟弹栈,并初始化计数pop();a=0;i=0;}elseif(z.equals("退出")){//结束do...while循环体c=false;}elseif(z.equals("列出栈内存中储存的变量指向的方法")){intindex=-1;//创建栈帧if(os[0]==null){System.out.println("栈内没有已装载的变量!");}for(intk=os.length-1;k>-1;k--){//判定如果Object[]数组内的各个属性,如果不等于null则输出声明if(!(os[k]==null)){index++;System.out.println("栈内存中已入栈的变量的方法有:"+os[k]);}}//如果栈帧的值不为0,则输出结果if(!(index==-1)){System.out.println(os[index]+"《==栈帧指向");}}}while(c);}//模拟栈publicstaticvoidZhan(Objecto){if(i<os.length){//给Object[]数组赋值os[i]=o;System.out.println("目标:"+os[i]+"的所有变量已压入栈内!");i++;}}publicstaticvoidpush(Stringc){//接收下面类传来的参数并赋值给Zhan()Zhan(c);}publicstaticvoidpop(){//检测数组第一位的值是不是空,如果是则输出消息if(os[0]==null){System.out.println("栈内没有已装载的变量!无法弹栈!");}//模拟弹栈for(intk=(os.length-1);k>=0;k--){//遍历数组,将数组内不是null的值全部输出并初始化为nullif(!(os[k]==null)){System.out.println(os[k]+"的所有变量:已弹出内存!");os[k]=null;}}}}classnum{publicvoidleng(){//让下面的方法有个共同的父类,并且调用时统一输出自己的名字给栈MoveTest01.push(getClass().getName());}}//即将入方法区的方法,假设里面有变量(也可以直接把这些方法看成变量);classAextendsnum{publicA(){}}classBextendsnum{publicB(){}}classCextendsnum{publicC(){}}classDextendsnum{publicD(){}}classEextendsnum{publicE(){}}classFextendsnum{publicF(){}}
读到这里,这篇“Java怎么使用一维数组来模拟栈的实现”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。