86 lines
2.0 KiB
Java
86 lines
2.0 KiB
Java
|
|
/**
|
|
* Beschreiben Sie hier die Klasse LinkedList.
|
|
*
|
|
* @author (Ihr Name)
|
|
* @version (eine Versionsnummer oder ein Datum)
|
|
*/
|
|
public class LinkedList<T>
|
|
{
|
|
public Node<T> first;
|
|
public LinkedList(){
|
|
}
|
|
|
|
public void einfuegen (T neu) {
|
|
Node<T> n = new Node<T>(neu);//Neue Node mit Zahl "neu " anlegen
|
|
|
|
//Überprüfe ob die liste leer ist
|
|
if(first == null){
|
|
//setze neue node als erster Eintrag
|
|
first = n;
|
|
}
|
|
else {
|
|
Node<T> current = first;
|
|
|
|
while(current.next != null){
|
|
current = current.next;
|
|
}
|
|
current.setNext(n);
|
|
}
|
|
|
|
//current ist jetzt der letzte Eintrag
|
|
//setze neue Node als Nachfolger von bisher letztem Eintrag
|
|
}
|
|
|
|
public int laenge(){
|
|
Node current = first;
|
|
int laenge = 0;
|
|
while(current != null){
|
|
current = current.next;
|
|
laenge++;
|
|
}
|
|
return laenge;
|
|
|
|
}
|
|
|
|
public T getNteZahl(int n){
|
|
Node<T> current = first;
|
|
for(int i = 0; i<n; i++){
|
|
current = current.next;
|
|
}
|
|
return current.wert;
|
|
}
|
|
|
|
public void loesche(int n){
|
|
Node<T> current = first;
|
|
|
|
//gehe an den Vorgänger des zu löschenden Eintrags
|
|
for(int i=0; i<n-1; i++){
|
|
current = current.next;
|
|
}
|
|
//setze Übernächsten Eintrag als Nachfolger
|
|
current.next = current.next.next;
|
|
|
|
}
|
|
|
|
public void hinzufügen(int n, T wert){
|
|
|
|
Node<T> neu = new Node<T>(wert);
|
|
if(n==0){
|
|
//setze Nachfolger auf bisherigen Stand
|
|
neu.setNext(first);
|
|
//setze neuen Start auf neuen
|
|
first = neu;
|
|
}else{
|
|
Node<T> current = first;
|
|
//gehe an den Vorgänger des zu löschenden Eintrags
|
|
for(int i=0; i<n-1; i++){
|
|
current = current.next;
|
|
}
|
|
//setze Übernächsten Eintrag als Nachfolger
|
|
current.next = current.next.next;
|
|
}
|
|
|
|
}
|
|
|
|
} |