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