85 lines
2.3 KiB
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
|
|
}
|
|
}
|
|
|