Animal Shelter

public class AnimalShelter {
    /*
     * @param name: a string
     * @param type: an integer, 1 if Animal is dog or 0
     * @return: nothing
     */
	class Node { //神马在神马时间进的队列
		String name;
		int time; //进队列的时间
		Node(String name, int time) {
			this.name = name;
			this.time = time;
		}
	}
	Queue<Node> dogQ, catQ;
	int time;
	Public AnimalShelter() { //constructor
		this.dogQ = new LinkedList<>(); 
		this.catQ = new LinkedList<>();
		time = 0;
	}
	public void enqueue(String name, int type) {
		if (type == 1) {
			dogQ.offer(new Node(name, time++)); //node 为 Queue 中的元素
		} else {
			catQ.offer(new Node(name, time++));
		}
	}
	public String dequeueAny() {
		if (dogQ.isEmpty()) {
			return catQ.poll().name;
		} else if (catQ.isEmpty()) {
			return dogQ.poll().name;
		} 
		return dogQ.peek().time < catQ.peek().time ? dogQ.poll().name : catQ.poll().name;
	}
	
	public String dequeueDog() {
		return dogQ.poll().name;
	}
	
	public String dequeueCat() {
		return catQ.poll().name;
	}
}

最后更新于

这有帮助吗?