Java中实现栈和队列的相关函数
发布时间:2023-06-29 15:46:09
在Java中,可以使用ArrayList来实现栈和队列的相关函数。下面是实现栈和队列的基本操作的代码示例:
栈的基本操作:
import java.util.ArrayList;
class Stack {
private ArrayList<Integer> stack;
public Stack() {
stack = new ArrayList<>();
}
// 入栈
public void push(int value) {
stack.add(value);
}
// 出栈
public int pop() {
if(!isEmpty()) {
int value = stack.get(stack.size() - 1);
stack.remove(stack.size() - 1);
return value;
}
return -1;
}
// 判断栈是否为空
public boolean isEmpty() {
return stack.isEmpty();
}
// 获取栈中元素的个数
public int size() {
return stack.size();
}
// 获取栈顶元素
public int top() {
if(!isEmpty()) {
return stack.get(stack.size() - 1);
}
return -1;
}
}
队列的基本操作:
import java.util.ArrayList;
class Queue {
private ArrayList<Integer> queue;
public Queue() {
queue = new ArrayList<>();
}
// 入队
public void enqueue(int value) {
queue.add(value);
}
// 出队
public int dequeue() {
if(!isEmpty()) {
int value = queue.get(0);
queue.remove(0);
return value;
}
return -1;
}
// 判断队列是否为空
public boolean isEmpty() {
return queue.isEmpty();
}
// 获取队列中元素的个数
public int size() {
return queue.size();
}
// 获取队列头部元素
public int front() {
if(!isEmpty()) {
return queue.get(0);
}
return -1;
}
// 获取队列尾部元素
public int rear() {
if(!isEmpty()) {
return queue.get(queue.size() - 1);
}
return -1;
}
}
使用栈和队列的示例:
public class StackAndQueueDemo {
public static void main(String[] args) {
// 使用栈
Stack stack = new Stack();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println("栈顶元素:" + stack.top());
System.out.println("栈的大小:" + stack.size());
while(!stack.isEmpty()) {
System.out.println("弹出栈顶元素:" + stack.pop());
}
// 使用队列
Queue queue = new Queue();
queue.enqueue(1);
queue.enqueue(2);
queue.enqueue(3);
System.out.println("队列头部元素:" + queue.front());
System.out.println("队列尾部元素:" + queue.rear());
System.out.println("队列的大小:" + queue.size());
while(!queue.isEmpty()) {
System.out.println("出队元素:" + queue.dequeue());
}
}
}
以上代码实现了栈和队列的基本操作,包括入栈、出栈、判断栈是否为空、获取栈中元素的个数、获取栈顶元素等栈的操作,以及入队、出队、判断队列是否为空、获取队列中元素的个数、获取队列头部元素、获取队列尾部元素等队列的操作。
