PTA中7-1 jmu-ds-栈与队列-stack、queue与string小综合代码
时间: 2024-10-12 14:08:57 浏览: 81
在PTE(Problem Translation Exercise,翻译题)的编程题目中,特别是涉及到7-1级别的JMU-DS(Java Methodology and Data Structures)部分,可能会让你编写涉及栈(Stack)和队列(Queue)数据结构以及字符串操作的小规模程序。栈是一种后进先出(LIFO,Last In First Out)的数据结构,而队列则是先进先出(FIFO,First In First Out)。
例如,一道简单的题目可能是创建一个功能,可以接受用户的输入,比如数字或特定命令(如"push"入栈,"pop"出栈,"enqueue"入队,"dequeue"出队),然后对这些元素按照相应的操作处理,最后可能还会有一个查看栈顶或队首元素的功能。同时,你还需要处理字符串操作,比如搜索、替换等。
代码可能如下所示(这是一个简化的示例,并非完整的解题代码):
```java
import java.util.Scanner;
import java.util.Stack;
import java.util.Queue;
public class StackAndQueue {
private Stack<String> stack;
private Queue<String> queue;
public StackAndQueue() {
stack = new Stack<>();
queue = new LinkedList<>(); // 使用LinkedList作为队列实现
}
// 推入栈
public void push(String item) {
stack.push(item);
}
// 弹出栈顶
public String pop() {
return stack.pop();
}
// 入队
public void enqueue(String item) {
queue.offer(item);
}
// 出队
public String dequeue() {
return queue.poll();
}
// 查看栈顶元素
public String peekStack() {
return stack.peek();
}
// 查看队首元素
public String peekQueue() {
return queue.peek();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StackAndQueue instance = new StackAndQueue();
while (true) {
System.out.println("Enter command (push/pop/enqueue/dequeue/peek_stack/peek_queue/exit):");
String command = scanner.nextLine();
if (command.equalsIgnoreCase("exit")) break;
switch (command) {
case "push":
instance.push(scanner.next());
break;
// ... 对其他命令进行类似处理
}
}
scanner.close();
}
}
```
阅读全文