class Stack {
private int stck[] ;
private int tos ;
Stack(int size) { // 一个参数的构造参数
stck = new int[size] ; // 创建数组(创建堆栈)
tos = -1 ; // 空堆栈标识 -1
}
// 堆栈操作的特性:先进后出、后进先出
void push(int item) { // 入栈
if (tos==stck.length-1) // 定义栈顶位置,元素达到栈顶则无法进栈
System.out.println("Stack is full.") ;
else
stck[++tos] = item ; // 元素存入(数组)堆栈,栈顶(自加)
}
int pop() { // 出栈
if(tos<0) { // 栈内容为空,则不再执行出栈操作
System.out.println("Stack underflow.") ;
return 0 ;
}
else
return stck[tos--] ; // 元素出栈,栈位置自减
}
}
class TestStack2 {
public static void main(String args[]) {
Stack mystack1 = new Stack(5) ; // 堆栈1 5个元素 >>> Stack对象
Stack mystack2 = new Stack(8) ; // 堆栈2 8个元素 >>> Stack对象
// push入栈操作
for( int i = 0 ; i<5 ; i ++)
mystack1.push(i) ;
for( int i = 0 ; i<8 ; i ++)
mystack2.push(i) ;
// pop出栈操作(读取堆栈操作)
System.out.println("Stack in mystack1:") ;
for( int i = 0 ; i<5 ; i ++)
System.out.println(mystack1.pop()) ;
System.out.println("Stack in mystack2:") ;
for( int i = 0 ; i<8 ; i ++)
System.out.println(mystack2.pop()) ;
}
}

Java 数组实现堆栈操作的更多相关文章

  1. Java核心基础第4篇-Java数组的常规操作

    Java数组 一.数组简介 数组是多个相同类型数据的组合,实现对这些数据的统一管理 数组属引用类型,数组型数据是对象(Object) 数组中的元素可以是任何数据类型,包括基本类型和引用类型 数组类型是 ...

  2. JAVA 数组的常用操作

    目录: 声明数组: 初始化数组: 查看数组长度: 遍历数组: int数组转成string数组: 从array中创建arraylist: 数组中是否包含某一个值: 将数组转成set集合: 将数组转成li ...

  3. JAVA数组的典型操作

  4. JAVA之旅(三)——数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想

    JAVA之旅(三)--数组,堆栈内存结构,静态初始化,遍历,最值,选择/冒泡排序,二维数组,面向对象思想 我们继续JAVA之旅 一.数组 1.概念 数组就是同一种类型数据的集合,就是一个容器 数组的好 ...

  5. Java 数组操作

    参考了网上别人的代码,在Java中对数组的比较便利的操作是 将数组转换成集合再利用集合所提供的add remove等方法进行增删,然后再转换成原数组类型 如 String[] --> 填充至 A ...

  6. Java实例 Part4:数组及其常用操作

    目录 Part4:数组及其常用操作 Example01:将二维数组的行列交换 Example02:使用选择排序法对数组进行排序 Example03:使用冒泡排序法对数组进行排序 Example04:使 ...

  7. Java数组操作的10大方法

    转载自码农网 译文链接:http://www.codeceo.com/article/10-java-array-method.html 英文原文:Top 10 Methods for Java Ar ...

  8. 数据结构(3):java使用数组模拟堆栈

    堆栈原理: 数组模拟堆栈: //数组模拟栈 class ArrayStack{ //栈顶 private int top = -1; private int maxSize; private int[ ...

  9. 菜鸡的Java笔记 实践 - java 数组操作

    讲解一个继承的实现思路                要求定义一个数组操作类(Array类),在这个类里面可以进行整型数组的操作,由外部传入数组的大小        ,并且要求实现数据的保存以及数据的 ...

随机推荐

  1. HDU 5119 Happy Matt Friends(DP || 高斯消元)

    题目链接 题意 : 给你n个数,让你从中挑K个数(K<=n)使得这k个数异或的和小于m,问你有多少种异或方式满足这个条件. 思路 : 正解据说是高斯消元.这里用DP做的,类似于背包,枚举的是异或 ...

  2. Hibernate查询对象所有字段,单个字段 ,几个字段取值的问题

    HQL 是Hibernate Query Language的简写,即 hibernate 查询语言:HQL采用面向对象的查询方式.HQL查询提供了更加丰富的和灵活的查询特性,因此Hibernate将H ...

  3. How To Start Building Spatially Aware Apps With Google’s Project Tango

    How To Start Building Spatially Aware Apps With Google’s Project Tango “Tango can enable a whole new ...

  4. nginx中级应用

    1.安装监控模块 Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定: . /con ...

  5. 从Entity Framework的实现方式来看DDD中的repository仓储模式运用

    一:最普通的数据库操作 static void Main(string[] args) { using (SchoolDBEntities db = new SchoolDBEntities()) { ...

  6. Android-Intent意图传递数据

    Intent意图传递基本数据类型: OuterActivity 激活启动 OneActivity 用Intent携带基本数据类型: /** * Intent意图传递数据到另外一个Activity */ ...

  7. C/C++文件输入输出流

        C++方式 C方式 头文件   fstream stdio.h open   file.open(const char *filename,const char *mode) FILE* fo ...

  8. django shortcut function

    render() render(request, template_name, context=None, content_type=None, status=None, using=None) 必须 ...

  9. 引用HM.Util.Ioc 的时候报错

    引用HM.Util.Ioc 的时候报错 错误:The type name or alias SqlServer could not be resolved. Please check your con ...

  10. CookieJar和HTTPCookieProcessor

    CookieJar和HTTPCookieProcessor 我们在使用爬虫的时候,经常会用到cookie进行模拟登陆和访问.在使用urllib库做爬虫,我们需要借助http.cookiejar库中的C ...