widness
1/17/2018 - 4:38 PM

WaitingList Remove With Search

Function used to remove an element from a WaitingList with searched parameters Use: Juste add it into you WaitingList

public class Input {
	private int number;
	private int phoneNumber;
	private Input next;
	
	public Input (int number,int phoneNumber) {
		this.number = number;
		this.phoneNumber = phoneNumber;
		next = null;
	}
	
	// Get & Setter
}

public Input remove (int nr) {
	Input tf = first;

	tf = find (nr, tf);
	
	if (tf != null)
		removePhoneCall(tf);
		
	return tf;
}

private Input find (int key, Input tf) {
	if (tf == null)
		return null;
	if (tf.getPhoneNumber()==key)
		return tf;
	
	return find (key, tf.getNext());
}

private Input removePhoneCall(Input t) {
	Input remove = null;
	Input prev = first;

	if (prev == t) { // erstes Element, gibt keinen Vorgänger
		remove = prev;
		first = remove.getNext();
	}
	else { // Vorgänger ermitteln
		while (prev.getNext() != t)
			prev = prev.getNext();

		if (prev.getNext()==last) {// letztes Element, gibt keinen Nachfolger
			remove = last;
			last = prev;
		}
		else { // Mittendrin, gibt Vorgänger und Nachfolger
			remove = prev.getNext();
			prev.setNext(remove.getNext());
		}
	}
	if (remove != null)
		System.out.println(remove.toString() + " hat aufgelegt.");
		
	return remove;
} // ende removeAtIndex