编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有
生活随笔
收集整理的這篇文章主要介紹了
编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
代碼
/*第一題:編寫程序,使用一維數組,模擬棧數據結構。要求:1、這個棧可以存儲java中的任何引用類型的數據。2、在棧中提供push方法模擬壓棧。(棧滿了,要有提示信息。)3、在棧中提供pop方法模擬彈棧。(??樟?#xff0c;也有有提示信息。)4、編寫測試程序,new棧對象,調用push pop方法來模擬壓棧彈棧的動作。 */ package com.bjpowernode.javase.day23homework;public class Homework1 {public static void main(String[] args) {MyStack myStack = new MyStack();//壓棧myStack.push(new A());//壓棧成功,com.bjpowernode.javase.day23homework.A@6acbcfc0myStack.push(new B());//壓棧成功,com.bjpowernode.javase.day23homework.B@3feba861myStack.push(new C());//壓棧失敗,棧已滿,先生請回!//彈棧myStack.pop();//彈棧成功,com.bjpowernode.javase.day23homework.B@3feba861myStack.pop();//彈棧成功,com.bjpowernode.javase.day23homework.A@6acbcfc0myStack.pop();//棧已空,何必苦苦相逼,卻只能徒勞而返null!myStack.pop();//棧已空,何必苦苦相逼,卻只能徒勞而返null!} } class A{} class B{} class C{}class MyStack{//定義object數組,提供空間壓棧彈棧private Object[] objects;//棧幀,永遠指向棧頂元素,初始情況object數組沒有元素,棧幀指向-1private int index = -1;//poppublic Object pop(){//判斷棧空否if (index < 0){System.out.println("棧已空,何必苦苦相逼,卻只能徒勞而返null!");return null;}else{//返回當前元素后,棧幀所指元素進行減一操作System.out.println("彈棧成功," + objects[index]);return objects[index--];}}//pushpublic void push(Object obj){//棧幀指向object數組元素下標的下一個index++;if (index >= objects.length){System.out.println("壓棧失敗,棧已滿,先生請回!");//棧幀永遠指向當前元素index--;}else{//壓棧,將引用類型數據壓入棧中this.objects[index] = obj;System.out.println("壓棧成功," + obj);}}//constructorpublic MyStack() {//初始默認??臻g為2this(new Object[2]);}public MyStack(Object[] objects) {this.objects = objects;}//setter and getterpublic Object[] getObjects() {return objects;}public void setObjects(Object[] objects) {this.objects = objects;}public int getIndex() {return index;}public void setIndex(int index) {this.index = index;} }總結
以上是生活随笔為你收集整理的编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ZZULIOJ 1099: 角谷猜想(多
- 下一篇: 为某个酒店编写程序:酒店管理系统,模拟订