堆栈,队列的实现
来源:互联网 发布:五官不对称 知乎 编辑:程序博客网 时间:2024/04/28 01:22
interface Storage {
void put(int x);
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 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];
}
if (top <= 0) {
System.out.println("栈已空");
System.exit(-1); // 这里的错误处理方式是直接退出
}
return Storage[--top];
}
public Stack(int max) {
MaxElemNum = max;
Storage = new int[MaxElemNum];
}
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 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++];
}
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];
}
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);
}
void put_data(Storage store, int data) {
store.put(data);
}
int get_data(Storage store) {
return store.get();
}
}
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());
}
}
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++ 堆栈、队列的链式实现
- 线性表、堆栈、队列的实现总结
- JavaScript队列或者堆栈的实现
- 堆栈和队列的java实现
- 用堆栈的方式实现队列
- 面向对象堆栈及队列的实现
- 用堆栈实现队列
- LinkedList实现堆栈、队列
- 关于树的队列实现和堆栈实现的分析
- 两个堆栈实现队列,两个队列实现堆栈
- JavaScript的数组实现队列与堆栈的方法
- JavaScript的数组实现队列与堆栈的方法
- Java 实现堆栈和队列
- 优秀新员工发言
- javascript将页面设为首页代码大全
- 看看老外是怎么做乘法的!
- 通往弹性软件架构之路
- 系列技巧100条
- 堆栈,队列的实现
- 开始研究Nutch搜索引擎
- 嵌入式测试
- Google Adsense申请手册
- prototype.js常用函数及其用法
- prototype.js 1.4 原代码阅读
- 如何设计架构
- 程序员真实写真:35岁前成功的12条黄金法则
- Lucene的介绍