AbstrakteDatentypen/LinkedList.java

85 lines
2.3 KiB
Java

/**
* Beschreiben Sie hier die Klasse LinkedList.
*
* @author (Ihr Name)
* @version (Alte Version)
*/
public class LinkedList<T> // T muss immer in der Klasse gennant werden
{
private Node<T> start; //Node<T> braucht auvh Datentyp T
public void einfuegen(T zahl){
// Lege einen neuen Knoten an mit der Zahl
Node neu = new Node();
neu.wert = zahl;
if (this.start == null){ // Wenn Liste noch leer
this.start = neu;
}
else { //wenn schon Elemente in der Liste drin sind
//beginne vorne
Node current = this.start;
while (current.next != null){ //solange es einen Nachfalger gibt
current = current.next; // gehe zum Nachfolger
}
//current ist jetzt das letzte Element
// hänge den neuen Knoten an
current.next = neu;
}
}
public int laenge(){
int count = 0; //Variable zum Zählen
//beginne von
Node current = this.start;
while (current != null){ //sollange ein Element exisitiert
current = current.next;// gehe zum Nachfolger
count++; //zähle
}
return count;
}
public String toString(){
//Ergebnis
String result = "";
//beginne vorn
Node current = this.start;
while (current != null){ //sollange ein Element exisitiert
result += current.wert + " ";
current = current.next; // gehe zum Nachfolger
}
return result;
}
public T erste(){ //kein Rückgabetyp int mehr sondern T
if (this.start == null){
return null;
}
T tmp = this.start.wert; //abspeichern des ersten in eine Variable tmp
this.start = this.start.next; //damit start beim nächsten ist und mann dann den ersten löschen kann
return tmp;
}
public T getNteZahl(int n){ //position ist immer int!
Node<T> current = this.start; //starte vorne
for ( int i = 0; i<n; i++){ //mache n Schritte
if (current==null) return null;
current = current.next;
}
if (current == null) return null;
return current.wert;//gib den wert zurück
}
}