仿写队列类stack,实现基本操作:push、pop、front、back、empty、 size.
时间: 2023-07-04 12:22:03 浏览: 64
好的,以下是仿写的队列类stack的实现:
```python
class Stack:
def __init__(self):
self.items = []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def front(self):
return self.items[-1]
def back(self):
return self.items[0]
def empty(self):
return len(self.items) == 0
def size(self):
return len(self.items)
```
其中,`__init__`方法用于初始化队列,`push`方法用于在队列末尾插入一个元素,`pop`方法用于弹出并返回队列头部的元素,`front`方法用于返回队列头部的元素,`back`方法用于返回队列尾部的元素,`empty`方法用于判断队列是否为空,`size`方法用于返回队列的长度。
相关问题
定义一个泛型类MyStack,实现栈的基本操作:push、pop、peek、isEmpty。
```
public class MyStack<T> {
private List<T> stack;
public MyStack() {
stack = new ArrayList<>();
}
public void push(T element) {
stack.add(element);
}
public T pop() {
if (isEmpty()) {
throw new EmptyStackException();
}
return stack.remove(stack.size() - 1);
}
public T peek() {
if (isEmpty()) {
throw new EmptyStackException();
}
return stack.get(stack.size() - 1);
}
public boolean isEmpty() {
return stack.isEmpty();
}
}
```
定义一个泛型类MyStack,实现栈的基本操作:push、pop、peek、isEmpty。 定义一个泛型类MyQueue,实现队列的基本操作:add、remove、peek、isEmpty。 定义一个泛型类MyArrayList,实现数组列表的基本操作:add、remove、get、size。
好的,我来为您解答这个问题。
下面是MyStack类的代码实现:
```java
public class MyStack<T> {
private List<T> stack;
public MyStack() {
stack = new ArrayList<>();
}
public void push(T element) {
stack.add(element);
}
public T pop() {
if (isEmpty()) {
throw new EmptyStackException();
}
return stack.remove(stack.size() - 1);
}
public T peek() {
if (isEmpty()) {
throw new EmptyStackException();
}
return stack.get(stack.size() - 1);
}
public boolean isEmpty() {
return stack.isEmpty();
}
}
```
下面是MyQueue类的代码实现:
```java
public class MyQueue<T> {
private List<T> queue;
public MyQueue() {
queue = new ArrayList<>();
}
public void add(T element) {
queue.add(element);
}
public T remove() {
if (isEmpty()) {
throw new NoSuchElementException();
}
return queue.remove(0);
}
public T peek() {
if (isEmpty()) {
throw new NoSuchElementException();
}
return queue.get(0);
}
public boolean isEmpty() {
return queue.isEmpty();
}
}
```
下面是MyArrayList类的代码实现:
```java
public class MyArrayList<T> {
private T[] array;
private int size;
public MyArrayList() {
array = (T[]) new Object[10];
size = 0;
}
public void add(T element) {
if (size == array.length) {
T[] newArray = (T[]) new Object[array.length * 2];
System.arraycopy(array, 0, newArray, 0, array.length);
array = newArray;
}
array[size++] = element;
}
public T remove(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
T removed = array[index];
System.arraycopy(array, index + 1, array, index, size - index - 1);
array[--size] = null;
return removed;
}
public T get(int index) {
if (index < 0 || index >= size) {
throw new IndexOutOfBoundsException();
}
return array[index];
}
public int size() {
return size;
}
}
```
希望我的回答能够帮助到您!