1、用一维数据模拟栈结构

public class Stack1{//一维数据模拟栈结构
    Object[] elements;//默认栈的容量为5public Stack1(){this(5);    //this 这里是代码的重用,也可以写成 elements = new Object[5];
                     }public Stack1(int max){elements = new Object[max];}//模拟栈指针int index;//压栈方法public void push(Object element) throws Stack1OperationException{if(index == elements.length){throw new Stack1OperationException("The Stack1 have been Full");}elements[index++] = element;}//弹栈方法public  Object pop() throws Stack1OperationException{if(index == 0){throw new Stack1OperationException("The Stack1 have been Empty!");}return elements[--index];}}

2、自定义栈异常类

public class Stack1OperationException extends Exception{public void Stack1OperationException(){};public Stack1OperationException(String msg){super(msg);}}

3、测试

public class TestStack1{public static void main(String[] args){Stack1 s = new Stack1();User u1 = new User("Jack",23);User u2 = new User("Ford",24);User u3 = new User("King",25);User u4 = new User("Smith",26);User u5 = new User("COOK",27);User u6 = new User("zhangsan",28);try{s.push(u1);s.push(u2);s.push(u3);s.push(u4);s.push(u5);s.push(u6);}catch(Stack1OperationException e){e.printStackTrace();}try{System.out.println(s.pop());System.out.println(s.pop());System.out.println(s.pop());System.out.println(s.pop());System.out.println(s.pop());}catch(Stack1OperationException e){e.printStackTrace();}}
}class User{String name;int age;User(String name, int age){this.name = name;this.age = age;}public String toString(){return "User[name="+name+" ,age="+age+"]";}
}

转载于:https://www.cnblogs.com/StanLong/p/7707213.html

一维数组模拟数据结构-------栈相关推荐

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

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

  2. 简单用数组模拟顺序栈(c++)

    **栈是一种操作受限制的线性表,太多官方的话我也不说了,我们都知道栈元素是先进后出的,它有两种存储结构,分别是顺序存储结构和链式存储结构. **今天我先记一下顺序存储结构,后面我会加上链式存储结构的. ...

  3. 数组模拟栈和队列板子

    使用数组模拟数据结构栈和队列 栈:后进先出 对于栈:我们使用tt表示栈顶的下标,如果tt==0表示栈空 队列:先进先出 对于队列,我们使用hh表示队首,tt表示队尾,tt初始化为-1,判断队列是否为空 ...

  4. linux/bash:用数组模拟栈(FILO)的封装

    linux shell中是没有队列这个类型的,如果需要用到队列模型,就需要自己实现,以下是用数组模拟一个栈(FILO)的操作 #!/bin/bash # 向栈中添加一个元素 # $1 栈变量名 # $ ...

  5. [C++]二维数组还是一维数组?

    记得刚学习C++那会这个问题曾困扰过我,后来慢慢形成了不管什么时候都用一维数组的习惯,再后来知道了在一维数组中提出首列元素地址进行二维调用的办法.可从来没有细想过这个问题,最近自己写了点代码测试下,虽 ...

  6. Pandas-数据结构-Series(一):创建Series【①由字典创建;②由一维数组创建;③由标量创建】【Series的属性:index、values、name】

    Pandas中一共有三种数据结构,分别为:Series.DataFrame和MultiIndex(老版本中叫Panel ).其中: Series是一维数据结构: DataFrame是二维的表格型数据结 ...

  7. 编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有

    代码 /*第一题:编写程序,使用一维数组,模拟栈数据结构.要求:1.这个栈可以存储java中的任何引用类型的数据.2.在栈中提供push方法模拟压栈.(栈满了,要有提示信息.)3.在栈中提供pop方法 ...

  8. 数据结构之数组模拟栈

    栈的特点即先进后出,采用数组模拟栈,实现栈的这一特性主要是靠定义一个指针(索引). 指针的初始位置指向的是-1 以下给出代码: package com.ebiz.stack;/*** @author ...

  9. 数据结构 - 栈(数组模拟栈操作)

    数组模拟栈操作 package stack;import java.util.Scanner;public class ArrayStackDemo {public static void main( ...

最新文章

  1. struts-Result- Configuration
  2. django learn 多对多的两种映射关系
  3. 一步一步做高性能服务器(C++) -- Day 1
  4. 纪中A组模拟赛总结(2021.7.16)
  5. java学习(127):finally语句
  6. python安装多久_python安装与使用
  7. 性能监控工具javamelody与spring的集成
  8. 8个提高工作效率的Web前端开发框架总结
  9. Python学习笔记010——匿名函数lambda
  10. 【bzoj3298】[USACO 2011Open]cow checkers(博弈论)
  11. 计算机的doc命令怎么学,cmd命令提示符大全:想成为电脑高手必学CMD命令大全
  12. (1)初识云计算-《云计算核心技术剖析》学习笔记
  13. 现代通信原理思维导图--第三章 随机过程
  14. 算法入门到进阶(一)——算法复杂度
  15. 【转】代价曲线的理解
  16. python 之免费ip代理池
  17. 计算机二级考试真题李阳答案,英语二级笔译_二级笔译培训_二级笔译真题 - 沪江英语...
  18. 我的世界热力膨胀JAVA_我的世界热力膨胀MOD矿物类型介绍
  19. 网易有道词典总是提示网络连接失败--解决办法
  20. maven完全离线开发【解决jar包自动从网络下载导致打包失败】

热门文章

  1. [转]Spring数据库读写分离
  2. 强制浏览器重定向到另一页
  3. VC realize the transparent windows
  4. 重新拾起VS2008加入战斗
  5. CLIP-ViL:CLIP对视觉和语言任务有多大的好处?UC BerkeleyUCLA团队给出了答案!
  6. SSL:Self-Supervised Learning(自监督学习)是什么?
  7. 首个实时单目3D目标检测算法:RTM3D,代码将开源
  8. Python精简入门学习(三)
  9. 这些Python代码技巧,你肯定还不知道
  10. 清华大学团队夺冠AAAI 2021国际深度元学习挑战赛