在 Java 中使用数组实现队列

x33g5p2x  于2022-09-25 转载在 Java  
字(0.9k)|赞(0)|评价(0)|浏览(268)

下面的 Java 代码展示了如何在不使用 Java 中的任何额外数据结构的情况下实现队列。 我们可以使用数组来实现队列。

import java.lang.reflect.Array;
import java.util.Arrays;
 
public class Queue<E> {
 
	E[] arr;
	int head = -1;
	int tail = -1;
	int size;
 
	public Queue(Class<E> c, int size) {
		E[] newInstance = (E[]) Array.newInstance(c, size);
		this.arr = newInstance;
		this.size = 0;
	}
 
	boolean push(E e) {
		if (size == arr.length)
			return false;
 
		head = (head + 1) % arr.length;
		arr[head] = e;
		size++;
 
		if(tail == -1){
			tail = head;
		}
 
		return true;
	}
 
	boolean pop() {
		if (size == 0) {
			return false;
		}
 
		E result = arr[tail];
		arr[tail] = null;
		size--;
		tail = (tail+1)%arr.length;
 
		if (size == 0) {
			head = -1;
			tail = -1;
		}
 
		return true;
	}
 
	E peek(){
		if(size==0)
			return null;
 
		return arr[tail];
	}
 
	public int size() {
		return this.size;
	}
 
	public String toString() {
		return Arrays.toString(this.arr);
	}
 
	public static void main(String[] args) {
		Queue<Integer> q = new Queue<Integer>(Integer.class, 5);
		q.push(1);
		q.push(2);
		q.push(3);
		q.push(4);
		q.push(5);
		q.pop();
		q.push(6);
		System.out.println(q);
	}
}

相关文章

微信公众号

最新文章

更多