一维数组模拟数据结构-------栈
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
一维数组模拟数据结构-------栈相关推荐
- 【java进阶06:数组】使用一维数组模拟栈数据结构 使用二维数组模拟酒店,酒店管理系统 Arrays工具类 冒泡排序算法、选择排序算法、二分法
目录 数组 二维数组 总结 作业 Arrays工具类 数组 数组总结 及 静态初始化一维数组 /* Array:1.java语言中的数组是一种引用数据类型,不属于基本数据类型,数组的父类是Object ...
- 简单用数组模拟顺序栈(c++)
**栈是一种操作受限制的线性表,太多官方的话我也不说了,我们都知道栈元素是先进后出的,它有两种存储结构,分别是顺序存储结构和链式存储结构. **今天我先记一下顺序存储结构,后面我会加上链式存储结构的. ...
- 数组模拟栈和队列板子
使用数组模拟数据结构栈和队列 栈:后进先出 对于栈:我们使用tt表示栈顶的下标,如果tt==0表示栈空 队列:先进先出 对于队列,我们使用hh表示队首,tt表示队尾,tt初始化为-1,判断队列是否为空 ...
- linux/bash:用数组模拟栈(FILO)的封装
linux shell中是没有队列这个类型的,如果需要用到队列模型,就需要自己实现,以下是用数组模拟一个栈(FILO)的操作 #!/bin/bash # 向栈中添加一个元素 # $1 栈变量名 # $ ...
- [C++]二维数组还是一维数组?
记得刚学习C++那会这个问题曾困扰过我,后来慢慢形成了不管什么时候都用一维数组的习惯,再后来知道了在一维数组中提出首列元素地址进行二维调用的办法.可从来没有细想过这个问题,最近自己写了点代码测试下,虽 ...
- Pandas-数据结构-Series(一):创建Series【①由字典创建;②由一维数组创建;③由标量创建】【Series的属性:index、values、name】
Pandas中一共有三种数据结构,分别为:Series.DataFrame和MultiIndex(老版本中叫Panel ).其中: Series是一维数据结构: DataFrame是二维的表格型数据结 ...
- 编写程序,使用一维数组,模拟栈数据结构。 要求: 1、这个栈可以存储java中的任何引用类型的数据。 2、在栈中提供push方法模拟压栈。(栈满了,要有
代码 /*第一题:编写程序,使用一维数组,模拟栈数据结构.要求:1.这个栈可以存储java中的任何引用类型的数据.2.在栈中提供push方法模拟压栈.(栈满了,要有提示信息.)3.在栈中提供pop方法 ...
- 数据结构之数组模拟栈
栈的特点即先进后出,采用数组模拟栈,实现栈的这一特性主要是靠定义一个指针(索引). 指针的初始位置指向的是-1 以下给出代码: package com.ebiz.stack;/*** @author ...
- 数据结构 - 栈(数组模拟栈操作)
数组模拟栈操作 package stack;import java.util.Scanner;public class ArrayStackDemo {public static void main( ...
最新文章
- struts-Result- Configuration
- django learn 多对多的两种映射关系
- 一步一步做高性能服务器(C++) -- Day 1
- 纪中A组模拟赛总结(2021.7.16)
- java学习(127):finally语句
- python安装多久_python安装与使用
- 性能监控工具javamelody与spring的集成
- 8个提高工作效率的Web前端开发框架总结
- Python学习笔记010——匿名函数lambda
- 【bzoj3298】[USACO 2011Open]cow checkers(博弈论)
- 计算机的doc命令怎么学,cmd命令提示符大全:想成为电脑高手必学CMD命令大全
- (1)初识云计算-《云计算核心技术剖析》学习笔记
- 现代通信原理思维导图--第三章 随机过程
- 算法入门到进阶(一)——算法复杂度
- 【转】代价曲线的理解
- python 之免费ip代理池
- 计算机二级考试真题李阳答案,英语二级笔译_二级笔译培训_二级笔译真题 - 沪江英语...
- 我的世界热力膨胀JAVA_我的世界热力膨胀MOD矿物类型介绍
- 网易有道词典总是提示网络连接失败--解决办法
- maven完全离线开发【解决jar包自动从网络下载导致打包失败】