interface Storage {
void put(int x);
int get();
}
class Stack implements Storage {
public void put(int x) {
if (top > MaxElemNum - 1) {
System.out.println("栈已满,最大元素数量为:" + MaxElemNum + ",已有元素个数:" + top);
System.exit(-1); // 这里的错误处理方式是直接退出
}
Storage[top++] = x;
}
public int get() {
if (top <= 0) {
System.out.println("栈已空");
System.exit(-1); // 这里的错误处理方式是直接退出
}
return Storage[--top];
}
public Stack(int max) {
MaxElemNum = max;
Storage = new int[MaxElemNum];
}
public Stack() {
};
private int MaxElemNum = 100;
private int Storage[] = new int[MaxElemNum];
private int top = 0;
}
class Queue implements Storage {
public void put(int x) {
if (top > MaxElemNum - 1) {
System.out.println("队列已满,最大元素数量为:" + MaxElemNum + ",已有元素个数:" + top);
System.exit(-1); // 这里的错误处理方式是直接退出
}
Storage[top++] = x;
}
public int get() {
if (top == bottom) {
System.out.println("队列已空");
top = bottom = 0;
System.exit(-1); // 这里的错误处理方式是直接退出
}
return Storage[bottom++];
}
public Queue(int max) {
MaxElemNum = max;
Storage = new int[MaxElemNum];
}
public Queue() {
};
private int MaxElemNum = 100;
private int Storage[] = new int[MaxElemNum];
private int top = 0, bottom = 0;
}
class StorageManger {
void put_data(Storage store, int data) {
store.put(data);
}
int get_data(Storage store) {
return store.get();
}
}
class Demo {
public static void main(String args[]) {
Stack myStack = new Stack(5); // default new Stack()=new Stack(100)
Queue myQueue = new Queue(5); // default new Queue()=new Queue(100)
StorageManger storeMan = new StorageManger();
for (int i = 1; i <= 5; i++)
storeMan.put_data(myStack, i);
for (int i = 1; i <= 5; i++)
System.out.println(storeMan.get_data(myStack));
System.out.println();
// for(int i=1;i<=5;i++)
// storeMan.put_data(myQueue,i);
// for(int i=1;i<=5;i++)
// System.out.println(storeMan.get_data(myQueue));
for (int i = 1; i <= 5; i++)
myStack.put(i);
for (int i = 1; i <= 5; i++)
myQueue.put(myStack.get());
for (int i = 1; i <= 5; i++)
System.out.println(myQueue.get());
}
}
分享到:
相关推荐
只用堆栈实现队列只用堆栈实现队列只用堆栈实现队列
利用栈和队列实现的计算器的C语言 通过测试
简单实用的C#实现冒泡堆栈队列,带注释。
该文件包括堆栈的头文件(Seq开头)和链表的头文件(Lin开头),另外还实现了十进制转化为八进制、对称串判断和带头结点的单循环链表实现链式队列
线性表、堆栈、队列实现源码,C++实现,如果有问题请大家给我留言http://blog.csdn.net/tiandixuanwuliang
用堆栈实现模拟队列的操作,降低时间复杂度
C++堆栈实现队列.doc
堆栈和队列基本操作的编程实现(2学时,验证型),掌握堆栈和队列的建立、进栈、出栈、进队、出队等基本操作的编程实现,存储结构可以在顺序结构或链接结构中任选,也可以全部实现。也鼓励学生利用基本操作进行一些...
数据结构实验:堆栈与队列; 包括3个代码和实验报告: 括号匹配完成、 利用栈队列逆置 、栈的操作
网络爬虫,初学必看,用链表实现贮存待捉的url队列,用堆栈检查url是否已经捉了。用了HtmlClient和HtmlParser实现。
数据结构实验 堆栈或队列基本操作的编程实现
数据结构实现方式,可以更深刻的理解这些数据结构的实现方式
C语言-数据结构-栈队列实现
用c++实现大部分数据结构,适合新手学习
实现队列的操作,即入队void AddQ(ElementType item)和出队ElementType DeleteQ()。 Input Description 输入首先给出两个正整数N1和N2,表示堆栈S1和S2的最大容量。随后给出一系列的队列操作:A item表示将item...
最全的链表、堆栈和队列实现:带(不带)头结点的单链表、带(不带)头结点的双链表、循环链表、顺序(链式)堆栈、顺序(链式)队列,用C语言实现,简单易懂。
用链表实现栈和队列的操作,使链表操作更加成熟,熟练栈和队列的机制
使用栈和队列实现: 设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出;汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北端...
基于 Java 实现的队列和堆栈; 上次上传的那两个也是一样的,不过我以前由于要积分来下载别的资源,只好把以前的那两个的下载积分设置为6来增加我的积分。
主要介绍了Go语言的队列和堆栈实现方法,涉及container/list包的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下