java:编写程序,使用一堆数组,模拟栈数据结构

要求:

         1、这个栈可以存储java中的任何引用类型的数据。

         2、在栈中提供push方法模拟压栈。(栈满了要有信息提示)

         3、在栈中提供pop方法模拟弹栈。(栈空了要有信息提示)

         4、编写测试程序。

        (分别有程序截图以及程序文本。)

=========================================================================

以下为程序截图:

程序测试方法

=========================================================================

以下为程序为本:

package com.bj.javese.array.homework;
public class Stack {
    //定义一个Object类型的数组,模拟栈
    Object[] objects;
    //定义一个int类型的变量,模拟栈帧
    int index;
    //无参构造
    public Stack() {
        //调用无参构造时,给objects数组长度赋值为10
        this.objects = new Object[10];
        //调用无参构造时,给index赋值-1
        this.index = -1;
    }
    //定义一个push方法,模拟压栈
    public void push(Object obj){
        //判断栈帧指向栈中哪个元素,如果栈帧指向的元素位置大于了数组的长度
        if (this.index >= objects.length - 1){
            //输出提示语句
            System.out.println("栈已满,压栈失败。");
            //结束方法
            return;
        }
        //程序执行到这一步,说明数组模拟的栈中还有内存,此时栈帧要先自加一
        ++this.index;
        //把栈帧指向的元素放入栈中
        objects[this.index] = obj;
        //打印输出压入栈中的元素以及栈帧指向
        System.out.println("压栈" + objects[this.index] + "元素成功,栈帧指向" + index);
    }
    //定义一个pop方法,模拟弹栈
    public void pop(){
        //判断栈帧指向栈中哪个元素,如果栈帧指向的元素位置小于了数组的长度
        if (this.index < 0){
            //输出提示语句
            System.out.println("栈已空,弹栈失败。");
            //结束方法
            return;
        }
        //打印输出
        System.out.print("弹栈" + objects[this.index] + "元素成功");
        //程序执行到这一步,说明数组模拟的栈中还有元素,此时栈帧要先把指向的元素弹出,然后自减一
        this.index--;
        //打印输出
        System.out.println("栈帧指向" + index);
    }
    public 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;
    }
}

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值