Erste Schritte verkettete Liste

B

Biene90

Gast
Ich habe eine Aufgabe bekommen und ich bekomme das überhaupt nicht hin kann mir hier i-wer helfen die Aufgabe zu lösen?




Aufgabe 2:
Die folgenden Klassen implementieren die Ihnen aus der Vorlesung bekannte Datenstruktur „verkettete Liste“:
Java:
class Element {
int wert;
Element naechstes;
Element(int v, Element n) {
this.wert = v;
this.naechstes = n;
}
}
class Liste {
Element erstes, letztes;
Liste() {
this.erstes = null;
this.letztes = null;
}
void hinzufuegen(int i) { // Anhaengen am Ende
Element elem = new Element(i, null);
if (this.erstes == null) {
this.erstes = elem;
this.letztes = elem;
} else {
this.letztes.naechstes = elem;
this.letztes = elem;
}
}
}
Leiten Sie von der Klasse Liste eine Klasse EListe ab, die eine zusätzliche Methode void verdoppeln(int i) definiert. Ein Aufruf der Methode soll bewirken, dass alle Elemente der Liste mit dem Wert des aktuellen Parameters i verdoppelt werden. Die Klassen Element und Liste dürfen nicht verändert werden.
Beispiel:
Die Liste
5 -> 4 -> 3 -> 4 -> 4 -> 2 -> 2 -> 1
wird durch den Aufruf der Methode verdoppeln(4) zu der Liste
5 -> 4 -> 4 -> 3 -> 4 -> 4 -> 4 -> 4 -> 2 -> 2 -> 1
 
Zuletzt bearbeitet von einem Moderator:
S

SlaterB

Gast
keine Java Tags obwohl dicker roter Hinweis, Einrückung möchte ich mal nicht korrigieren,
aussageloser Titel (falls unklar: von mir umbenannt), nach Hausaufgaben verschoben..,
da kommt ja alles zusammen ;)
 
Zuletzt bearbeitet von einem Moderator:
B

Biene90

Gast
Also so hab ich angefangen aber i-wie ich verzweifel :(



public class Aufgabe2 extends Liste
{

Element hilfselement = this.erstes;

hilfselement = neu.naechstes;
hilfselement = hilfselement.naechstes;

public static void main(String[] args) {

while (hilfselement != null){
element = element.next;
return (element != null);}
 
G

Gast2

Gast
SlaterB hat gesagt.:
keine Java Tags obwohl dicker roter Hinweis, Einrückung möchte ich mal nicht korrigieren,

Leiten Sie von der Klasse Liste eine Klasse EListe ab, die eine zusätzliche Methode void verdoppeln(int i) definiert.
Da steht doch ganz klar was zu tun ist. Seh ich deinem Code jetzt aber nicht wirklich.

Dann überlegst du dir wie du hier vorgehen würdest:
Ein Aufruf der Methode soll bewirken, dass alle Elemente der Liste mit dem Wert des aktuellen Parameters i verdoppelt werden. Die Klassen Element und Liste dürfen nicht verändert werden.
Einfach mal Schritt für Schritt aufschreiben.
 
B

Biene90

Gast
jaha wenn ich wüsste wie man das anstellt hätte ich das wohl auch getan ich will ja auch keine lösung sondern nur erklärung wie das alles funktioniert vllt einen ansatz ich hab überhaupt kein plan von der ganzen Geschichte
 
N

nillehammer

Gast
Versuch mal in Menschensprache zu beschreiben, was gemacht werden muss. Z.B. so:
- Nimm erstes Element
- Vergleiche Elementwert mit Parameterwert
- Wenn gleich, insertiere ein neues Element mit Parameterwert (wo am besten?)
- Gehe alle folgenden Elemente durch und wiederhole die Prüfung.
Daran kann man schon absehen, wie das ganze in Java aussehen müsste (irgendwie ne Schleife und irgendwie ein if für den Wertevergleich). Feinheiten wie welcher Schleifentyp oder wo insertiert man am besten, klären sich durch ausprobieren oder, wenn Du garnicht weiterkommst durch eine konkretere Frage.
 
B

Biene90

Gast
also gut dann genauer ich hab jetzt sowas probiert weil es soll das ja i-wie verdoppeln aber ja eig nur die 4
wie stellt man das nun an

int verdoppeln( int i )
{
return 2*i;
}
 
F

Firephoenix

Gast
Hast du nillehammers Post gelesen?

Es geht nicht um Arithmetisches Verdoppeln, sondern um neu-einfügen von bestimmten elementen in eine Liste, so dass die Elemente doppelt vorkommen.
 

Andi_CH

Top Contributor
Sollte wohl so sein ;-)

Code:
Liste  = [ 1 2 3 4 5 ]
verdopple 3
Liste  = [ 1 2 3 3 4 5 ]

TO: Wenn du keine Eigeninitiative zeigst kostet die Lösung was.
 

Neue Themen


Oben