Servus Leute,
ich habe erst vor kurzem mit Java lernen angefangen, also hab ich noch nicht viel Erfahrung...
Zu meinem Problem: Ich will eine eigene verkettete Liste schreiben, die mir 10 Int-Werte einfügt.
Hierfür erzeuge ich mit einer for-Schleife jedes mal ein neues Element (newEle) welches ich dann den Wert 8*i (i=Anzahl des aktuellen Schleifendurchgangs) zuweise.
Doch bei der Ausgabe der fertigen Liste gibt mir das System nur "0"er und als letztes Element die 80 (8*10=80 würde passen) aus.
Woran liegt das? Habe ich den Verweis zwischen den einzelnen Kettenglieder falsch gemacht?
Denn mir kommt es so vor, als würde mein Start-Element gleich auf das letzte/10te Element (Wert 80) verweisen.
Danke schonmal im Voraus!!
Liste.java
ListElement.java
Die Main Datei:
ich habe erst vor kurzem mit Java lernen angefangen, also hab ich noch nicht viel Erfahrung...
Zu meinem Problem: Ich will eine eigene verkettete Liste schreiben, die mir 10 Int-Werte einfügt.
Hierfür erzeuge ich mit einer for-Schleife jedes mal ein neues Element (newEle) welches ich dann den Wert 8*i (i=Anzahl des aktuellen Schleifendurchgangs) zuweise.
Doch bei der Ausgabe der fertigen Liste gibt mir das System nur "0"er und als letztes Element die 80 (8*10=80 würde passen) aus.
Woran liegt das? Habe ich den Verweis zwischen den einzelnen Kettenglieder falsch gemacht?
Denn mir kommt es so vor, als würde mein Start-Element gleich auf das letzte/10te Element (Wert 80) verweisen.
Danke schonmal im Voraus!!
Liste.java
Java:
public class List {
ListElement start;
int counter = 0;
public List()
{
start = new ListElement(0);
}
public void insertLast(int s)
{
int übergabe= s;
ListElement newEle = new ListElement(übergabe);
start.next = newEle;
counter +=1;
}
public void delete(int n)
{
if (n<1)
{
return;
}
ListElement nth = findIndex(n-1);
if (nth == null)
{
return;
}
ListElement pre = findIndex(n-1);
pre.next = nth.next;
}
public int get(int n)
{
if(findIndex(n) == null)
{
return 0;
}
else
{
return findIndex(n).value;
}
}
private ListElement findIndex(int n) //ADRESSE DES ELEMENTS
{
if(n < 0)
{
return null;
}
ListElement iterator = start;
for ( int i=0; i<n; ++i)
{
if (iterator.hasNext())
{
iterator = iterator.next;
}
else
{
return null;
}
}
return iterator;
}
}
ListElement.java
Code:
public class ListElement {
int value;
ListElement next;
public ListElement(int s)
{
value = s;
next = null;
}
public boolean hasNext()
{
if(this.next == null)
{
return false;
}
else
{
return true;
}
}
}
Die Main Datei:
Code:
public class Beispielprogramm
{
public static void main(String[] args)
{
List l= new List();
for (int i=1; i<=10; ++i)
{
l.insertLast(8*i);
}
l.delete(3);
for (int i=l.counter; i>=1; --i)
{
System.out.print("Liste: " + l.get(i));
}
System.out.println("Länge: "+l.counter);
}
}