java中通过数组模拟栈
作者:互联网
package com.lut.javase.array; /* *第一题: 编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有提示信息。) 3、在栈中提供pop方法模拟弹栈。(栈空了,也有有提示信息。) 4、编写测试程序,new栈对象,调用push pop方法来模拟压栈弹栈的动作。 public class MyStack{ // 栈类 // 提供一个数组来存储栈中的元素 Object[] elements; // 栈帧(永远指向栈顶部的元素) // 每加1个元素,栈帧+1 // 每减1个元素,栈帧-1 int index; // 构造方法 // 构造方法是不是应该给一维数组一个初始化容量。 // push方法(push方法压栈) // 压栈表示栈中多一个元素。 // 但是栈如果已满,压栈失败。 // 这个方法的参数以及返回值类型自己定义。 // pop方法(pop方法弹栈) // 弹栈表示栈中少一个元素。 // 但是栈如果已空,弹栈失败。 // 这个方法的参数以及返回值类型自己定义。 } main(){ 测试... } */ public class HomeWork01 { public static void main(String[] args) { MyStack myStack = new MyStack(); Object a = new Object(); myStack.push(a); myStack.pop(); myStack.pop(); myStack.pop(); } } class MyStack{ int index = 0; Object obj; Object[] elements = new Object[20]; MyStack(){} MyStack(Object obj){ this.obj = obj;elements[index] = obj; } public void push(Object obj){ // elements[index] = obj; if(index < elements.length){ index++; elements[index] = obj; System.out.println(obj+"pushed"); }else{ System.out.println("栈可能满了"); } } public Object pop(){ if(index <= 0){ System.out.println("此栈可能为空"); return null; }else{ System.out.println(elements[index]+"poped"); Object a = elements[index]; index--; return a; } } }
标签:index,elements,obj,Object,pop,数组,MyStack,java,模拟 来源: https://www.cnblogs.com/kelvin-liu/p/16444411.html