• 第一题:编写程序,使用一维数组,模拟栈数据结构。


    第一题:
    编写程序,使用一维数组,模拟栈数据结构。
    要求:
    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 MyStack {
        private Object[] elements ;
        private int index =-1;
    
        public MyStack() {
           this. elements=new Object[10];
            this.index = -1;
        }
        public void push (Object obj){
            if(index>= elements.length-1)
            {
                System.out.println("栈帧已满,无法存放");
                return;
            }
                index++;
                elements[index] = obj;
                System.out.println("压栈"+obj+"元素成功,栈帧指向"+index);
    
        }
        public void pop(){
            if(index<0)
            {
                System.out.println("弹栈失败,栈已空");
                return ;
            }
            System.out.print("弹栈"+elements[index]+"成功");
                 index--;
            System.out.println("栈帧指向"+index);
        }
    
        public Object[] getElements() {
            return elements;
        }
    
        public void setElements(Object[] elements) {
            this.elements = elements;
        }
    
        public int getIndex() {
            return index;
        }
    
        public void setIndex(int index) {
            this.index = index;
        }
    }
    
    public class Test753 {
        public static void main(String[] args) {
            MyStack stack =new MyStack();
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
            stack.push(new Object());
    
    
            stack.pop();
            stack.pop();
            stack.pop();
            stack.pop();
            stack.pop();
            stack.pop();
            stack.pop();
            stack.pop();
            stack.pop();
            stack.pop();
            stack.pop();
        }
    }
    
  • 相关阅读:
    matlab 基操~
    树莓派 Qt中 QCameraInfo 无法使用
    数据结构(二)——单向有头链表的原理以及简单应用
    【C语言进阶】自定义类型:结构体,枚举,联合
    2 .项目构建(实时计算框架和监控kafka,flink的工具)
    CTF-XSS
    MacOS电脑上面怎么运行Windows软件程序?
    Spring Cloud的魔法世界
    jQuery--引入jq&jq简单方法
    2020-2023中国高等级自动驾驶产业发展趋势研究-概念界定
  • 原文地址:https://blog.csdn.net/m0_67545415/article/details/125621246