本题需要设计Stack和Queue类,程序结构已给出,根据测试代码和输出完成这两个类的属性和方法设计) public class test { public static void main(String[] args) { Stack s=new Stack(); s.put('a'); s.put('b'); s.put('c'); Queue q=new Queue(); q.put('a'); q.put('b'); q.put('c'); System.out.println("\n栈:"); System.out.println(s.get()); System.out.println(s.get()); System.out.println(s.get()); System.out.println("\n队列:"); System.out.println(q.get()); System.out.println(q.get()); System.out.println(q.get()); } } interface Access{ char get(); void put(char c); } class Stack implements Access{ //后进先出 ...... } class Queue implements Access{ //先进先出 ...... } 运行结果: 栈: c b a 队列: a b c
时间: 2023-06-19 10:09:23 浏览: 425
Stack类设计:
属性:
- 一个char类型的数组用于存储栈中的元素
- 一个整型变量用于记录栈顶的位置
方法:
- put(char c):将元素c压入栈中,栈顶位置加1
- get():弹出栈顶元素并返回,栈顶位置减1,如果栈为空,返回字符'\0'
实现代码:
```
class Stack implements Access{
private char[] stack;
private int top;
public Stack(){
stack = new char[100]; //初始化栈的容量为100
top = -1; //栈顶位置初始化为-1
}
public void put(char c){
if(top+1 < stack.length){
stack[++top] = c;
}
}
public char get(){
if(top >= 0){
return stack[top--];
}else{
return '\0';
}
}
}
```
Queue类设计:
属性:
- 一个char类型的数组用于存储队列中的元素
- 一个整型变量用于记录队列头的位置
- 一个整型变量用于记录队列尾的位置
方法:
- put(char c):将元素c加入队列尾部,队列尾位置加1
- get():弹出队列头部元素并返回,队列头位置加1,如果队列为空,返回字符'\0'
实现代码:
```
class Queue implements Access{
private char[] queue;
private int head;
private int tail;
public Queue(){
queue = new char[100]; //初始化队列的容量为100
head = tail = 0; //队列头和尾都初始化为0
}
public void put(char c){
if(tail < queue.length){
queue[tail++] = c;
}
}
public char get(){
if(head < tail){
return queue[head++];
}else{
return '\0';
}
}
}
```
阅读全文