`

堆栈,队列的实现

 
阅读更多
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());
}
}
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics