public class Queue {

	private QueueNode head, tail;

	public Queue() { 
    	head = tail = null; 
	}

	public boolean isEmpty() { 
    	return head == null; 
	}

	public void clear() { 
    	head = tail = null; 
	}

	public Object firstEl() { 
    	return head.info; 
	}

	public void enqueue(Object el) { 
		QueueNode q = new QueueNode(el);
		if (!isEmpty()) {
			tail.next = q; 
         	tail = tail.next; 
    	} else head = tail = q; 
	}

	public Object dequeue() { // cancella il nodo in testa e restituisce il campo info 
    	if (!isEmpty()) { 
			Object el = head.info; 
			if (head == tail) // se  presente un solo nodo 
				head = tail = null;
			else head = head.next; 
			return el; 
    	} else return null; 
	} 
}




 


Bacheca di Algoritmi e Strutture Dati a.a. 2007-08 - canale A - L

forum del corso

ultima modifica: 03/04/2008 23.35
by FdA