编写一个类,实现简单的栈操作。数据的操作按先进后出的顺序。成员函数为pop; push; size; full; empty; print等等
2014-09-21 20:05
661 查看
//栈的抽象类 package org.lina.stack; public interface StackADT { public void push(Object element);//进栈 public Object pop();//出栈 public int size();//栈的大小 public Boolean full();//是否是满栈 public Boolean empty();//是否是空栈 public void print(); } //栈的实现 package org.lina.stack; public class ArrayStack implements StackADT{ private Object[] contents; private int top;//标记下一个入栈的位置,同时也表示栈的容量的大小 private int SIZE=10; public ArrayStack(){ contents=new Object[SIZE]; top=0; } public void push(Object element) { // TODO Auto-generated method stub //需要先判断栈是否已满 if(full()){ System.out.println("sorry,栈已满!"); }else{ contents[top++]=element; } } @Override public Object pop() { // TODO Auto-generated method stub if(empty()){ System.out.println("sorry,栈为空!"); return null; }else{ return contents[--top]; } } @Override public int size() { // TODO Auto-generated method stub return top; } public Boolean full() { // TODO Auto-generated method stub if(top==SIZE) return true; else return false; } @Override public Boolean empty() { // TODO Auto-generated method stub if(top==0) return true; else return false; } @Override public void print() { // TODO Auto-generated method stub for(int i=0 ;i<top;i++){ System.out.println("栈的第" + (i+1) + "个元素为:"+contents[i]); } } public static void main(String[] args) { // TODO Auto-generated method stub ArrayStack arrayStack = new ArrayStack(); System.out.println("将0到9依次压栈,然后连续5次出栈"); for(int i=0;i<10;i++){ arrayStack.push(i); } for(int i=0;i<5;i++){ arrayStack.pop(); } System.out.println("栈的大小为:" + arrayStack.size()); arrayStack.print(); System.out.println("栈为空吗?: " + arrayStack.empty()); System.out.println("栈满了吗?: " + arrayStack.full()); } }
相关文章推荐
- 实现一个栈(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取栈中的最小元素。同时,栈的基本操作:入栈(Push)、出栈(Pop),也是在O(1)时间内完成的
- 【C语言】请编写实现以下功能函数:实现对一个8bit数据(unsigned char)的指定位(例如第8位)的置0或置1操作,并保持其他位不变
- 编写一个函数print,打印一个学生的成绩数组,该书组中有五个学生的数据,每个学生的数据包括num(学号)、name(姓名)、score(3门课的成绩)、用主函数输入这些数据,用print函数输出这些
- 输入两个整数序列。其中一个序列表示栈的push顺序,判断另一个序列有没有可能是对应的pop顺序。为了简单起见,我们假设push序列的任意两个整数都是不相等的。 比如输入的push序列是1、2、3、4、5,那么4、5、3、2、1就有可能是一个pop系列。
- 【C语言】编写一个函数reverse_string(char * string)(递归实现),将参数字符串中的字符反向排列,不能使用C函数库中的字符串操作函数。
- 编写设计一个People(人)类。该类的数据成员有年龄(age)、身高(height)、体重(weight)和人数(num),其中人数为静态数据成员,成员函数有构造函数(People)、进食(Eatt
- 【C++】编写一个简单的类。包含构造函数,成员函数等。
- 一个显示地图数据,并实现简单浏览查询程序源码(SDK编写)
- 第九周实验报告任务4 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- 编写一个程序,定义一个职工类,输入3个职工的编号、姓名、工资和年龄, 类中的成员函数实现输入、输出,在主函数中定义对象,并计算输出3个职工的平均工资。
- 【C语言】编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。要求:不能使用C函数库中的字符串操作函数。
- 【c语言】编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数
- 第九周任务四之 建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。
- cc150:实现一个栈,除了push和pop操作,还要实现min函数以返回栈中的最小值。
- 第九周任务四(建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作。)
- 第九周实验报告(四)建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数,完成矩阵的输入、输出、加、减、相等判断等操作
- 商店销售统计,每天有一个折扣价格,一次购10件以上者可以享受9.8折优惠,已知三个销售员的销售情况,运用静态数据成员和静态成员函数编写程序
- 实现一个栈,使push,pop,min操作只需要o(1)时间
- 《C++第九周实验报告4-1》---建立一个二维数组类Douary,使该类中有以下数据成员、成员函数及友员函数, //完成矩阵的输入、输出、加、减、相等判断等操作。
- C语言 编写一个函数reverse_string(char * string) 实现:将参数字符串中的字符反向排列。 要求:不能使用C函数库中的字符串操作函数。