LinkedList/LinkedList.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;
}
}
}