master
zfgdgf 2023-12-05 12:05:39 +01:00
parent 6262cd6cf6
commit 87aca7f523
3 changed files with 46 additions and 17 deletions

View File

@ -5,14 +5,14 @@
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class LinkedList
public class LinkedList<T> // T muss immer in der Klasse gennant werden
{
private Node start;
private Node<T> start; //Node<T> braucht auvh Datentyp T
public LinkedList(){
}
public void einfuegen(int zahl){
public void einfuegen(T zahl){
// Lege einen neuen Knoten an mit der Zahl
Node neu = new Node();
neu.wert = zahl;
@ -48,7 +48,7 @@ public class LinkedList
public String toString(){
//Ergebnis
String result = " ";
String result = "";
//beginne vorn
Node current = this.start;
while (current != null){ //sollange ein Element exisitiert
@ -59,18 +59,28 @@ public class LinkedList
return result;
}
public int erste(){
public T erste(){ //kein Rückgabetyp int mehr sondern T
if (this.start == null){
return 0;
return null;
}
int tmp = this.start.wert; //abspeichern des ersten in eine Variable tmp
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 int getNteZahl(){
return 0;
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
}
}

View File

@ -5,13 +5,13 @@
* @author (Ihr Name)
* @version (eine Versionsnummer oder ein Datum)
*/
public class Node
public class Node <T> //T für Typ und die Variable die wir hsben möchten (also int,string,...)
{
public int wert;
public T wert;
public Node next;
public void setWert(int w){
this.wert = w;
public void setWert(T w){ //statt int T damit es allgemeiner ist
this.wert = w;
}
public void setNext(Node n){

View File

@ -8,17 +8,36 @@
public class Test2
{
public static void test(){
LinkedList l= new LinkedList();
LinkedList<Integer> l= new LinkedList<Integer>();
l.einfuegen(4);
l.einfuegen(8);
l.einfuegen(3);
l.einfuegen(17);
System.out.println(l);
System.out.println(l); // gibt 4,8,3,17
System.out.println(" " + l.erste()); //"" nur damits schöner aussieht :)
System.out.println(l.erste()); // gibt 4 aus
System.out.println(l);
System.out.println(l); // gibt 8,3,17 aus
System.out.println(l.getNteZahl(2)); // gibt an 2.Stelle wert = 4 aus
System.out.println(l.getNteZahl(23)); // gibt 0 aus weil Liste nicht so lang ist
LinkedList<String> 12= new LinkedList<Strings>();
12.einfuegen("Hallo");
12.einfuegen("Welt");
System.out.println(12);
}
public static void test2(){
Node<String> n = new Node<String>(); // <String> ersetzt <T> mit Datentyp den wir für die Variable haben möchte
n.wert = "Hallo";
Node<Integer> i = new Node<Integer>();
i.wert = 5;
}
}