手撕数据结构---栈和队列的概念以及实现
概念:
实现:
Java代码示例(数组实现):
Java
public class ArrayStack {
private int[] data;
private int top = -1;
public ArrayStack(int capacity) {
data = new int[capacity];
}
public void push(int element) {
if (isFull()) {
throw new RuntimeException("Stack overflow");
}
data[++top] = element;
}
public int pop() {
if (isEmpty()) {
throw new RuntimeException("Stack underflow");
}
return data[top--];
}
public int peek() {
if (isEmpty()) {
throw new RuntimeException("Stack is empty");
}
return data[top];
}
public boolean isEmpty() {
return top == -1;
}
public boolean isF ull() {
return top == data.length - 1;
}
}
概念:
实现:
Java代码示例(数组实现):
Java
public class ArrayQueue {
private int[] data;
private int front, rear;
private int capacity;
public ArrayQueue(int capacity) {
this.data = new int[capacity];
this.front = 0;
this.rear = -1;
this.capacity = capacity;
}
// ... 其他方法
}
栈和队列是两种基础的数据结构,在编程中应用广泛。掌握它们的实现原理和应用场景,对于深入理解算法和数据结构有很大的帮助。
建议:
希望这个回答对你有帮助!
如果你还有其他问题,欢迎随时提问。
想深入了解哪些方面呢? 比如:
请告诉我你的需求,我将为你提供更详细的解答。