代码

/*第一题:编写程序,使用一维数组,模拟栈数据结构。要求:1、这个栈可以存储java中的任何引用类型的数据。2、在栈中提供push方法模拟压栈。(栈满了,要有提示信息。)3、在栈中提供pop方法模拟弹栈。(栈空了,也有有提示信息。)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() {//初始默认栈空间为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方法模拟压栈。(栈满了,要有相关推荐

  1. 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法

    目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...

  2. java语言编程三角形图形_编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用......

    导航:网站首页 > 编程题:编写程序输入三角形的3条边长,计算并输出... 求助一道JAVA编程题:编写一个类似记事本的图形用... 编程题:编写程序输入三角形的3条边长,计算并输出... 求助 ...

  3. Python 编写程序,输出所有由1、2、3、4这4个数字组成的素数,且每个素数中每个数字只用一次

    编写程序,输出所有由1.2.3.4这4个数字组成的素数,且每个素数中每个数字只用一次 练习题 2018.09.21 注意!!!: 并非最简单形式,在判断和循环语句中存在浪费时间的情况:有空再改吧-- ...

  4. 编写程序:构造如下文档内容 姓名:邀请您来参加本次会议 李雷 其中,姓名从文件 names.txt 中读取,共 3 个,产生的输出文件为 3 个,输出文件名为对应的 姓名,txt如 张三.txt

    3. 编写程序:构造如下文档内容姓名:邀请您来参加本次会议李雷其中,姓名从文件 names.txt 中读取,共 3 个,产生的输出文件为 3 个,输出文件名为对应的 姓名,txt, 如 张三.txt. ...

  5. java一维数组的特点,数据结构:java数组特点以及声明数组类

    JAVA数组的特点:动态数组,具有长度属性length,引用数据类型 动态数组是指,在声明数组变量之后,使用new运算符动态申请指定容量(存储单元个数)的数据存储空间:当数组不再被使用时,java将自 ...

  6. 一维数组模拟数据结构-------栈

    1.用一维数据模拟栈结构 public class Stack1{//一维数据模拟栈结构 Object[] elements;//默认栈的容量为5public Stack1(){this(5); // ...

  7. 问题 F: 编写函数:一维数组的逆序 (Append Code)

    题目描述 现有一个不超过N个元素的数组,将数组中的元素反转输出,即求其逆序. 结合"Append Code"中的代码,编写以下函数: 原型:int get_array(int a[ ...

  8. 编写程序,删除数组中重复的元素,并统计各元素出现的次数

    测试数据为:{10,30,50,30,20,20,40,50,30,20}; 删除重复数据后,数组为:{10,30,50,20,40}. 各元素出现的次数依次为:{1,3,2,3,1}; packag ...

  9. 二叉树的三叉链表实现c语言,数据结构:二叉树的三叉链表存储--Java实现

    public class ThreeLinkTree { // 内部节点类 public static class TreeNode { Object data; TreeNode left; Tre ...

最新文章

  1. Leetcode 415. 字符串相加 (每日一题 20210826 同类型题)
  2. 174. Dungeon Game 地下城游戏
  3. Diango博客--7.自动生成文章摘要
  4. zip版mysql5.6_mysql 5.6 压缩包版安装方法
  5. PHP 读取JSON数据
  6. “618”台前幕后的那些事
  7. 一加8系列获得认证:骁龙865加持 离上市又近一步
  8. WSDL2Java详细使用说明【官方最全说明】
  9. DaSiamRPN、SiamRPN++论文阅读
  10. 汽车零部件生产质量安全,路在何方?
  11. Pocket PC 2003 PC网卡上网设置
  12. 系统思考:智猪博弈(变革)
  13. 台式计算机的配置清单表格,电脑配置清单表格,为你分别介绍不同价位的三种配置清单...
  14. 编程之美-中国象棋将帅问题
  15. i-Shanghai无法跳转登陆页面/登陆页面打不开的解决方法
  16. 匈牙利命名法(Hungarian)
  17. 软件架构师的培养与认证
  18. 微软自带dns服务器,微软改进Windows 10加密DNS服务器配置(DoH) 现在设置起来更方便...
  19. Web开发基础_Servlet学习_0011_Servlet中的多线程安全问题与Servlet运行原理
  20. C语言英文背单词软件,C语言背单词程序

热门文章

  1. 如何下载Lucene.net源码
  2. 3位高二女生用大数据成功预测地铁出站人数 | 00后正在抛弃你
  3. oracle中文字段名怎么查询_sql注入联合查询总结
  4. 为什么 Netflix “永不宕机”?
  5. Java 数组转 List 的三种方式及对比
  6. 10 岁研究计算机,电脑神童“不务正业”的技术路
  7. 为高考学子加油,Java快速开发平台,JEECG 3.7.6高考性能增强版本发布
  8. 【平台兼容性】jeecg部署weblogic 测试,修改配置方法
  9. 【技术文档】JEECG 页面字典控件与Popup使用
  10. JEECG-P3开发专题 - 开发环境搭建入门