rekursive Listen in Java?

A

Arlic

Mitglied
Hi

ich versuch mich grad an einer rekursiven Liste in Java und habe dazu zwei Klassen erstellt. Nur weiß ich einfach nicht, ob das so funktioniert wie ich mir das vorstelle...


Java:
public class Listenwert {
	public int wert;
	public Listenwert next;
	
	public Listenwert(int wert, Listenwert next){
		this.wert=wert;
		this.next=next;
	}
}

Java:
public class Liste {
	protected static Listenwert liste = new Listenwert (0, null);
	
	public void fuegeEin(int x){
		if (liste.next==null && liste.wert==0){
			Listenwert liste = new Listenwert (x, null);
		}else{
			Listenwert neu = new Listenwert (x, liste.next);
			liste.next = neu;
		}
	}
	
}

Also ich möchte im Moment einfach nur neue Elemente in eine Liste einfügen können. Geht das so? Also steckt der richtige Gedankengang dahinter? Wenn nicht wäre ich für einen Tipp dankbar :)

Danke schon mal
mfg
Arlic

Edit: Ich könnte natürlich noch sagen was ich mir dabei gedacht habe :)
also: In der ersten Klasse sind die Eigenschaften der Liste definiert. In der zweiten soll dann zunächst eine Liste erstellt werden und durch die Methode fuegeEin ein neuer Integer Wert in die Liste eingefügt werden (oh wunder ;) ). Wenn die Liste bislang leer ist wird das erste Element überschrieben, wenn sie nicht leer ist wird an das erste Element das Element neu drangehangen was den neuen Wert beinhalten soll
 
Zuletzt bearbeitet:
M

Murray

Top Contributor
Du erzeugst beim Einfügen im ersten Fall ein neues Objekt, welches aber nur in einer lokalen Variablen gespeichert ist. Vermutlich willst du in Zeile 7 das neue Objekt eher der Membervariablen liste zuweisen, oder?

Warum ist die Membervariable liste static? Damti teilen sich alle Instanzen deiner Liste die gleichen Daten.
 
ARadauer

ARadauer

Top Contributor
beschreib mal was der Code machen soll....
wenn liste.next null dann wird ein neuer Listenwert erzeugt ... mit dem aber dann nichts gemacht wird..
wenn liste.next nicht null, wird dieses next mit einem neuen Listenwert überschrieben... nein das machst du falsch.....

eher so... ungegetestet

Java:
      Listenwert current = liste;
      Listenwert neu = new Listenwert (x, liste.next);

      if(current==null){
         current = neu;
         return;
      }

      while(current.next != null){ //das letzte element suchen, das Letze ist es wenn next null
         current = current.next;   //also so lange next nicht null, nächstes anschaun
      }
      current.next = neu; //beim letzen nun die neue einfügen
 
A

Arlic

Mitglied
So ganz falsch ist das doch nicht: das alte liste.next ist dann ja neu.next; es geht in dem Fall also nichts verloren. Allerdings werden die Elemente so immer vorne einsortiert.

Ja das stimmt. Ich hab mir mit einer forschleife die Zahlen 1-9 in die Liste geschrieben und das sah dann halt so aus 198... allerdings gabs einen Fehler in Zeile 7 wo ich mir nochmal eine neue Liste erstellte, was nicht sein durfte. Hab nochmal ein wenig weiter gemacht und jetzt müssten die neuen Elemente immer vorne eingefügt werden.

Java:
public class Liste {
	protected static Listenwert listenelement = new Listenwert (0, null);
	
	public void fuegeEin(int x){
		if (listenelement.next==null && listenelement.wert==0){
			listenelement = new Listenwert (x, null);
		}else{
			Listenwert neu = new Listenwert (x, listenelement);
			listenelement = neu;
		}
	}
	
	public void print(){
		Listenwert neu;
		neu = listenelement;
		if (listenelement.next==null){
			System.out.println("null "+listenelement.wert);
		}
		while(neu.next!=null){
			System.out.print(neu.wert);
			neu = neu.next;
			if(neu.next==null){
				System.out.print(neu.wert);
			}
		}
	}
	
}
 
A

Arlic

Mitglied
Da das erste jetzt klappt hab ich mir das jetzt mal versucht mit getter und setter zu schreiben

aber die print() funktion will nicht so wie ich will... aus irgendeinem Grund läuft sie nicht richtig durch und ich versteh nicht warum. Die fuegevorneEin Methode stimmt glaube ich.


Konstruktor für die Liste (nennt man das so? ;) ):
[Java]

public class Liste {
private int wert;
private Liste next;

public Liste(int wert, Liste next){
this.wert=wert;
this.next=next;
}
public int getWert(){
return this.wert;
}
public void setWert(int x){
this.wert=x;
}
public Liste getNext(){
return this.next;
}
public void setNext(Liste n){
this.next=n;
}
}

[/code]


die Listenmethoden:

Java:
public class kopf {
	Liste element = new Liste(0, null);
	
	public void fuegevorneEin(int x){
		if(element.getNext()==null && element.getWert()==0){
			this.element.setWert(x);
		}else{
			Liste neu = new Liste(x, element);
			neu.setNext(element);
		}
	}
	
	public void print(){
		if (element.getNext()==null){
			System.out.print("null "+element.getWert());
		}
		while(element.getNext()!=null){
			System.out.print(element.getWert());
			element= element.getNext();
		}
	}
}


meine main class die ich zum testen benutzen will:

Java:
public class start {
	public static void main (String[] args){
		kopf liste = new kopf();
		
		for(int c=0; c<10; c++){
			liste.fuegevorneEin(c);

		}
		liste.print();
	}
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
veryck Methoden Rekursive Methoden mit Rückgabeparameter Java Basics - Anfänger-Themen 9
macle Rekursive String Methode, Gerade Zahlen rausfiltern Java Basics - Anfänger-Themen 10
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Rekursive swapArray Methode Java Basics - Anfänger-Themen 69
D Rekursive Methode Java Basics - Anfänger-Themen 8
R Methoden rekursive Methoden Java Basics - Anfänger-Themen 6
O Quersumme rekursive Methode Java Basics - Anfänger-Themen 3
B Treetable (rekursive Funktion) aufbauen von Datenbank Java Basics - Anfänger-Themen 4
M Rekursive Methode Programmieren Java Basics - Anfänger-Themen 3
J rekursive Methode Java Basics - Anfänger-Themen 26
M rekursive division/0 mit exception Java Basics - Anfänger-Themen 18
J Rekursive Methode - Ziffern einer Zahl ausgeben Java Basics - Anfänger-Themen 2
M Rekursive Dateiliste erstellen mit Dateiendung(en) ?? Java Basics - Anfänger-Themen 4
S Rekursive Methode Java Basics - Anfänger-Themen 8
O Rekursive Methode Java Basics - Anfänger-Themen 4
V Methoden Rekursive Methode mit String als Rückgabe Java Basics - Anfänger-Themen 7
K Rekursive Methode Java Basics - Anfänger-Themen 1
K Rekursive Methode für Fakultät mit BigInteger Java Basics - Anfänger-Themen 10
L Rekursive Methode a * b berechnen Java Basics - Anfänger-Themen 2
L Rekursive Methode zur Berechnung der Potenz q hoch p Java Basics - Anfänger-Themen 17
J Methoden Rekursive Return Methode Java Basics - Anfänger-Themen 2
G Harmonische Rekursive Folge Java Basics - Anfänger-Themen 3
T Stack Overflow - Rekursive Fibonacci Java Basics - Anfänger-Themen 10
B Datentypen Suchbaum - Rekursive Ausgabe Java Basics - Anfänger-Themen 1
P Methoden Rekursive Methode für Potenzen Java Basics - Anfänger-Themen 2
M Methoden Binäre Suche als rekursive Variante Java Basics - Anfänger-Themen 5
B Rekursive Algorithmus schreiben Java Basics - Anfänger-Themen 8
S Eine rekursive Lösung Java Basics - Anfänger-Themen 4
S Int zu Hexadezimal - Rekursive Methode Java Basics - Anfänger-Themen 2
M Rekursive Suche in einem Feld Java Basics - Anfänger-Themen 11
N Rekursive Addition mit Scanner Java Basics - Anfänger-Themen 12
shiroX OOP Rekursive und Iterative Definition Java Basics - Anfänger-Themen 2
B Methoden Rekursive Methoden Java Basics - Anfänger-Themen 2
T Iterative Pi Berechnung in Rekursive Java Basics - Anfänger-Themen 2
C rekursive methode Java Basics - Anfänger-Themen 2
D Methoden Rekursive Methoden Java Basics - Anfänger-Themen 13
R rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
M Stürzen alle Rekursive Methoden irgendwann ab? Java Basics - Anfänger-Themen 11
D Primzahlen und Rekursive Liste Java Basics - Anfänger-Themen 29
R Rekursive Methode, Files finden Java Basics - Anfänger-Themen 2
S rekursive folge verbessern Java Basics - Anfänger-Themen 2
C rekursive Methode verstehe nicht! Java Basics - Anfänger-Themen 3
S Methoden rekursive Methode funktioniert nicht Java Basics - Anfänger-Themen 4
E Rekursive Methode Java Basics - Anfänger-Themen 3
N Methoden Rekursive Fibonaccizahlen mit Array Java Basics - Anfänger-Themen 2
R Rekursive Ausgabe eines Binärbaums Java Basics - Anfänger-Themen 4
J Methoden Rekursive Potenz ohne Math.Pow() Java Basics - Anfänger-Themen 9
A Rekursive Methode in Iterative umwandeln Java Basics - Anfänger-Themen 6
S Labyrith Rekursive Wegsuche Java Basics - Anfänger-Themen 4
C Rekursive Methode - Ziffern in Zahl Java Basics - Anfänger-Themen 33
U Dezimal zu Hexadezimal rekursive Funktion Java Basics - Anfänger-Themen 8
M rekursive Funktion zur Berechnung der Spiegelzahl Java Basics - Anfänger-Themen 7
L iterative und rekursive Folge Java Basics - Anfänger-Themen 20
G Rekursive Methode Java Basics - Anfänger-Themen 3
B OOP Einfach verkettete Liste - rekursive Methoden Java Basics - Anfänger-Themen 1
E Rekursive Methode mit Zufallsarray Java Basics - Anfänger-Themen 6
E Rekursive Methode Java Basics - Anfänger-Themen 18
U Rekursive lösung von pascal dreieck Java Basics - Anfänger-Themen 11
M Rekursive Methode - wo ist der Fehler? Java Basics - Anfänger-Themen 4
J rekursive methode Java Basics - Anfänger-Themen 6
H ScrollBar inaktiv / Rekursive Methode Java Basics - Anfänger-Themen 4
J Rekursive Methode Java Basics - Anfänger-Themen 11
G Rekursive Methode Java Basics - Anfänger-Themen 5
N Rekursive Berechnung der Höhe eines binären Baumes Java Basics - Anfänger-Themen 4
K Rekursive Methoden Java Basics - Anfänger-Themen 15
K Rekursive Funktion (Verständnissfrage) Java Basics - Anfänger-Themen 5
S Rekursive Bruch potenzierung Java Basics - Anfänger-Themen 2
D rekursive Summenberechnung Java Basics - Anfänger-Themen 8
J Rekursive Methode: Fakultaet berechnen Java Basics - Anfänger-Themen 5
E Rekursive definierten Folge Java Basics - Anfänger-Themen 10
A HILFE! Rekursive Funktion Java Basics - Anfänger-Themen 20
kulturfenster rekursive Binaere Suche Java Basics - Anfänger-Themen 12
F Rekursive Aufrufe, Parameterübergabe, call by reference Java Basics - Anfänger-Themen 3
G Rekursive Berechnung von n über k schlägt fehl Java Basics - Anfänger-Themen 5
B Rekursive & schreiben im ArrayList Java Basics - Anfänger-Themen 2
J Rekursive Fkt. Java Basics - Anfänger-Themen 2
A Rekursive Dateisuche Java Basics - Anfänger-Themen 12
K rekursive Funktion mit mehreren Parametern Java Basics - Anfänger-Themen 5
G rekursive Methode Java Basics - Anfänger-Themen 3
N rekursive Beispiele Java Basics - Anfänger-Themen 3
G rekursive u iterative Methode Java Basics - Anfänger-Themen 8
G Rekursive Methode Java Basics - Anfänger-Themen 7
ven000m Rekursive Funktionen - Frage Java Basics - Anfänger-Themen 16
D rekursive ausgabe einer zahl Java Basics - Anfänger-Themen 14
S Rekursive Funktionen in imperative Funktionen umwandeln Java Basics - Anfänger-Themen 2
M Rekursive Binärsuche Java Basics - Anfänger-Themen 6
S rekursive methoden Java Basics - Anfänger-Themen 5
S Lineare listen verkettung Java Basics - Anfänger-Themen 7
S Listen Java Basics - Anfänger-Themen 12
S Listen , Nodes am ende anängen Java Basics - Anfänger-Themen 6
P Sortieren von Listen nach Attributen Java Basics - Anfänger-Themen 3
M Java Listen Java Basics - Anfänger-Themen 4
V einfach verkettete Listen Java Basics - Anfänger-Themen 10
A PhoneBook mit verketteten listen Java Basics - Anfänger-Themen 48
F ich brauche Hilfe bei Listen Java Basics - Anfänger-Themen 13
M (Sehr großes Problem) Listen als static in anderen Klassen verwendet Java Basics - Anfänger-Themen 12
G Java Listen und Iterator Java Basics - Anfänger-Themen 2
S Erklaerung Listen Java Basics - Anfänger-Themen 27
J Implementierung Listen-ADT Java Basics - Anfänger-Themen 131
I Alle Elemente von zwei Listen vergleichen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Anzeige

Neue Themen


Oben