Problem 4, Step1

Benutzeravatar
MaBo
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 28. Sep 2008 13:32
Wohnort: Rodgau
Kontaktdaten:

Problem 4, Step1

Beitrag von MaBo »

Hallo zusammen, ich bin gerade etwas verwirrt, nachdem ich die add()-Funktion implementiert habe. Bei den Tests habe ich folgende Meldung mit fehlgeschlagenem Test "Tree is in sorted order"... ja ist doch eigentlich gut, oder vestehe ich da was falsch?
Ist da jetzt die Reihenfolge eingehalten? Wenn sie eingehalten wurde, was die Aussage ja bedeuten sollte, muss der Test doch bestanden sein, oder nicht?!?! :?: :? :?:

robert.n
Nerd
Nerd
Beiträge: 673
Registriert: 29. Sep 2008 19:17

Re: Problem 4, Step1

Beitrag von robert.n »

Nein, die Reihenfolge ist dann nicht eingehalten. Ich hatte den Fehler kurzzeitig nach Copy&Paste (habe vergessen beim kopierten Teil tree.right mit tree.left zu ersetzen :D ).

//EDIT:
Kann mir irgendjemand einen Tipp geben, weshalb bei mir der Test "agentMattersToo" fehlschlägt obwohl ich den Agentenname sehr wohl berücksichtige? (Vertauschen der Agentennamen-Sortierung nutzt auch nichts.)

fetzer
Kernelcompilierer
Kernelcompilierer
Beiträge: 522
Registriert: 1. Okt 2008 17:18

Re: Problem 4, Step1

Beitrag von fetzer »

Sortierung der Agentennamen korrekt? Hier hab ich am Anfang auch gehangen, da weder in den Kommentaren noch in der Aufgabenstellungen Angaben dazu gemacht werden. So sollte es sein:

Code: Alles auswählen

if(node.agent.compareTo(agent) < 0) 
  => rechts
else 
  => links

Benutzeravatar
Lennart
Mausschubser
Mausschubser
Beiträge: 69
Registriert: 30. Sep 2008 14:30
Wohnort: Darmstadt
Kontaktdaten:

Re: Problem 4, Step1

Beitrag von Lennart »

nevermind...

robert.n
Nerd
Nerd
Beiträge: 673
Registriert: 29. Sep 2008 19:17

Re: Problem 4, Step1

Beitrag von robert.n »

fetzer hat geschrieben:Sortierung der Agentennamen korrekt? Hier hab ich am Anfang auch gehangen, da weder in den Kommentaren noch in der Aufgabenstellungen Angaben dazu gemacht werden. So sollte es sein:

Code: Alles auswählen

if(node.agent.compareTo(agent) < 0) 
  => rechts
else 
  => links
Danke, jetzt funktioniert es! Leider sehe ich keinen Unterschied zu meinem alten Code... verrückt!
EDIT: Oh nein... ich glaube String.compareTo() gibt nicht nur -1, 0 und 1 zurück... wuah. :D

daniel_b
Computerversteher
Computerversteher
Beiträge: 363
Registriert: 15. Okt 2008 16:23

Re: Problem 4, Step1

Beitrag von daniel_b »

robert.n hat geschrieben: ich glaube String.compareTo() gibt nicht nur -1, 0 und 1 zurück... wuah. :D
Glaube ich auch. In manchen Fällen kann man aber mit Integer.signum() ne Menge Schachtelcode sparen..

nt4u
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 16. Apr 2009 15:02

Re: Problem 4, Step1

Beitrag von nt4u »

MaBo hat geschrieben:Bei den Tests habe ich folgende Meldung mit fehlgeschlagenem Test "Tree is in sorted order"... ja ist doch eigentlich gut, oder vestehe ich da was falsch?
Hallo MaBo,

die Meldung die du erhältst ist die Bezeichnung des Test, also was der Test denn überhaupt machen soll. Das ist in deinem Fall testen, ob die Knoten die korrekte Reihenfolge haben. Da der Test fehlschlägt, bekommst du die Bezeichnung ausgegeben. Das ist aber kein Indiz dafür, dass das bei dir funktioniert - im Gegenteil, jetzt weist du woran du noch arbeiten musst.

Grüße,
Moritz

Benutzeravatar
MaBo
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 28. Sep 2008 13:32
Wohnort: Rodgau
Kontaktdaten:

Re: Problem 4, Step1

Beitrag von MaBo »

Ja vielen Dank für die Antworten, hatte sich dann auch alsbald erledigt als mir auffiel, dass ich > und < vertauscht hatte :roll:

sina
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 27. Mai 2009 13:58

Re: Problem 4, Step1

Beitrag von sina »

Ich habe mal wieder ein Problem, ich habe mich eben an Schritt1 gesetzt und implementiert und dachte auch,dass das soweit klappen müsste, nur irgendwie klappt bei den Tests zu Schritt1 gar nichts, da steht etwas davon ,dass 2 erwartet werden,aber 1 rauskommt ,aber seltsamerweise klappen die Tests zu SChritt3 und 2a komplett und auch bei den anderen Tests gehen bei fast allen die random-tests, außer eben bei der 1 klappt nichts:-)

woran könnte das denn liegen??

Benutzeravatar
DerInformator
Mausschubser
Mausschubser
Beiträge: 98
Registriert: 24. Okt 2008 13:02
Wohnort: DA

Re: Problem 4, Step1

Beitrag von DerInformator »

sina hat geschrieben: ... da steht etwas davon ,dass 2 erwartet werden,aber 1 rauskommt ...

woran könnte das denn liegen??
Also ich hatte so ein ähnliches Problem ... bei mir stand dass er <3> erwartet und <2> rauskommt, oder so in etwa...

Das Problem bei mir war, dass meine Abfrage "ob ich den neuen Knoten schon einfügen darf, oder ob ich noch weitermachen soll" falsch war...

ich hatte nämlich so was in der art:

if(node.height > 1)
=> rekursion
else => füge Knoten in node.left (bzw. node.right) ein

Das Problem an der Sache ist, dass wir ja "height" nicht ändern....(noch nicht jedenfalls) ... height ist immer 1 xD

Also muss halt ne andere Abfrage her... z.B.: if(node.left != null) => rekursion .... usw.

Kann natürlich sein dass du ein gaaaanz anderes Problem hast XD
aber vllt. hat es dir (oder jemanden anderen hier) etwas geholfen :)

Gruß
"Do not go where the path may lead, go instead where there is no path & leave a trail"

b00m3r
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 182
Registriert: 10. Okt 2005 11:02

Re: Problem 4, Step1

Beitrag von b00m3r »

Hallo zusammen,

ich hänge momentan an testThreeDeepLeft meine Ausgabe dazu sieht folgendermaßen aus:


Aktueller Knoten 6 Agent: bob
Wurzel6
Aktueller Knoten 5 Agent: bob
Wurzel6
Linker Knoten 5
Rechter Knoten null
Aktueller Knoten 4 Agent: bob
Wurzel6
Aktueller Knoten 4 Agent: bob
Wurzel5
Linker Knoten 4
Rechter Knoten null
Linker Knoten 4
Rechter Knoten null

Was ich nicht so ganz verstehe ist, wieso er dann nochmal den Knoten 4 als aktuellen Knoten ansieht ?


Er sieht somit nur 6 Bob als Wurzel und als Linken Knoten die 4, Bob aber die 5 , Bob ist nicht mehr da .... -.-
Ist das vom test so gewollt das zwei mal der gleiche Knoten hintereinander kommt?

Was macht ihr wenn ein Knoten eingefügt werden soll der bereits im Baum ist ? Ich gebe da momentan einfach return node aus

sina
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 27. Mai 2009 13:58

Re: Problem 4, Step1

Beitrag von sina »

hm...also ich habe so eine abfrage wie if(node.left=null) mach bla else rekursion,habe auch nirgendswo bisher die Höhe verwendet/geändert oder so....trotzdem wollen die Tests zu 1 nicht gehen....ich denke ich werde mich morgen wieder auf Fehlersuche begeben um endlich mal weiterzukommen, bin aber dankbar,falls noch jemand ein paar Ideen für mich hätte,woran es liegen könnte.:-)

Scorpius
Mausschubser
Mausschubser
Beiträge: 65
Registriert: 17. Dez 2008 13:24

Re: Problem 4, Step1

Beitrag von Scorpius »

Also solange der übergebene Wurzeltree leer ist oder aus einem Knoten besteht, kriege ich die Aufgabe hin.

Aber sobald der übergebene Wurzeltree aus 2 Knoten besteht und ich Rekursion anwenden muss, hab ich überhaupt keinen Plan wie ich Denken soll.

Meine Rekursion besteht daraus, dass ich immer gucke ob der aktuelle Knoten Kinder hat. Wenn ja, füge den einzufügenden Knoten entweder beim linken oder rechten sohn ein.

Aber am ende erhalte ich IMMER einen Tree der höhe 2. :(

sina
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 27. Mai 2009 13:58

Re: Problem 4, Step1

Beitrag von sina »

juhu,also habe meinen fehler gefunden,ich hatte irgendwo auch linke und rechter knoten zurückgegeben und deshlab gingen wohl die anderen Tests auch,aber der zu SChritt 1 nicht...naja,jetzt geht aber der 1. und 2b),nun muss ich leider eben die Hilfsfunktionen auch benutzen,was ja aber der Sinn sein sollte:-)

Wie genau machst du denn deine Rekursion?Bei mir ist der Code zwar etwas länger und denke,dass es bestimmt kürzer geht,aber es klappt zumindest mal :-)

sina
Windoof-User
Windoof-User
Beiträge: 35
Registriert: 27. Mai 2009 13:58

Re: Problem 4, Step1

Beitrag von sina »

habe neuerdings probleme mit dem RandomTest bei 1, da steht "interval is present", ich weiß leider nicht recht,was mir diese meldung sagen will:-)
Der Fehler tritt jedoch nur auf,wenn ich rebalance() in add() verwende, sonst gehen bisher alle tests

Antworten

Zurück zu „Archiv“