P4 Step4 Random Test

Benutzeravatar
Gnomix
Computerversteher
Computerversteher
Beiträge: 306
Registriert: 31. Okt 2005 08:44

Re: P4 Step4 Random Test

Beitrag von Gnomix »

Die Grundidee ist schonmal richtig.

Man braucht removeSmallest().

Ausgangslage:
.....L
.../....\.
..x......y
./....../
w......K
........\
.........z

L = zu löschendes Element
K = kleinstes Element aus rechtem Unterbaum
Ziel:
.....K
.../....\.
..x......y
./....../
w......z
.........
..........
Zu erreichen über:

Code: Alles auswählen

Falls node.left und node.right nicht leer sind
  tempResult = removesmalles(node.right)
  node.right = tempResult.node()
  node.agent/interval = tempResult.removed.agent/interval
Wichtig dabei ist, dass du bei removeSmallest() die Rückgabewerte korrekt setzt.
Denn wenn du removed und node vertauschst, kommt Murks raus.
Nämlich etwas wie:
.....y
.../....\.
..x......K
./.........\
w..........z
oder:
.....y
.../....\.
..x......K
./.........
w..........

f_spitz
Erstie
Erstie
Beiträge: 15
Registriert: 31. Mai 2009 19:13

Re: P4 Step4 Random Test

Beitrag von f_spitz »

kann diese Theorie jemand bestätigen (am besten jmd. bei dem es läuft :)) ?????

dankeeeeee

f_spitz
Erstie
Erstie
Beiträge: 15
Registriert: 31. Mai 2009 19:13

Re: P4 Step4 Random Test

Beitrag von f_spitz »

und wie zur Hölle soll man dann den neuen rechten Ast erstellen... dass kann noch nicht sein :oops:

Benutzeravatar
anon
Neuling
Neuling
Beiträge: 10
Registriert: 16. Mai 2009 10:21

Re: P4 Step4 Random Test

Beitrag von anon »

dann muss man also in removeSmallest() den rechten unterbaum von node(zu löschendes element) zusammenbauen und zurückgeben? bisher habe ich versucht, den baum in remove() zusammenzubauen, was nicht geklappt hat.

und wie baut man in removeSmallest() den unterbaum zusammen?!
an die eltern komm ich ja da nicht ran (also z.B. an das y oben komme ich nicht ran, wenn ich bei der rekursion schon bei dem element K bin) also wie soll das gehen?!

f_spitz
Erstie
Erstie
Beiträge: 15
Registriert: 31. Mai 2009 19:13

Re: P4 Step4 Random Test

Beitrag von f_spitz »

genau das ist auch mein Problem...nach langem basteln an der remove() hab ich nun festgestellt,
dass das eigentliche Problem in der removeSmallest liegt....
ich bekomme es einfach nicht hin, den unterbaum zusammenzustellen (out.node ist der neue Unterbaum ohne dieses Kind.)
aber mit den elementen die vorher über dem kind waren !!!!!!!

hat jemand einen Tipp für uns, wie wir das machen können?
Ohne Zugriff auf die Eltern ist das ja nicht möglich...
Letztentlich müssen wir ja out.removed durch dessen rechten Nachbarn ersetzen...und den gesamten baum ausgeben...

tim
Mausschubser
Mausschubser
Beiträge: 50
Registriert: 13. Okt 2008 10:21
Wohnort: Weinheim
Kontaktdaten:

Re: P4 Step4 Random Test

Beitrag von tim »

also ich hab folgendes problem: bei mir laufen alle tests bis auf step4 random. da meldet er mir "biggest is correct". ich update biggest an allen stellen wo ich auch die höhe update ...

Benutzeravatar
Gnomix
Computerversteher
Computerversteher
Beiträge: 306
Registriert: 31. Okt 2005 08:44

Re: P4 Step4 Random Test

Beitrag von Gnomix »

Bei Removesmallest() muss man erstmal den Node ermitteln.
Hat man den gefunden, lösche ihn aus dem Teilbaum über remove().

Dann gibt man als Ergebnis, den Knoten und den Teilbaum ohne den knoten zurück.

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

Re: P4 Step4 Random Test

Beitrag von sina »

hi..also bei mir laufen alle Tests (inkl. der Zusatztest aus dem Forum bzgl. rebalance in Schritt4) außer der random test bei 4;
es kommt die folgende Fehlermeldung:junit.framework.AssertionFailedError: still 4000 elements expected:<4000> but was:<4006>..

Ich hatte auch schon,dass es 4003 waren.Ich bin langsam echt am verzweifeln, da ich seit stunden den Fehler suche und keine ahnung habe,woran es liegt, aber im Grunde kann es ja nur etwas ganz kleines sein,sind ja nur 6 zu viel:-(


Hatte jemand vielleicht die gleiche Fehlermeldung und kann mir helfen????????????

Benutzeravatar
anon
Neuling
Neuling
Beiträge: 10
Registriert: 16. Mai 2009 10:21

Re: P4 Step4 Random Test

Beitrag von anon »

also ich habs nach 4 tagen rumsuchen (insgesamt bestimmt 15 stunden), rumprobieren etc. mit dem ******* removeSmallest einfach sein lassen und 2 hilsfunktionen geschrieben. eine, die das kleinste element findet, und eine, die das kleinste element entfernt(und alles updated).
keine ahnung wieso das mit dem RemoveResult nicht geklappt hat.
ich suche dann das kleinste element, übernehme die inhalte in das zu löschende element, dann lösche ich das kleinste element.
hat nach 3 minuten funktioniert.
hatte vorher auch immer zu wenige oder zu viele elemente, die gelöscht wurden.

also ich werds mal als lehre sehen , mich nicht zu sehr an die vorgaben zu klammern und auch von anderen seiten an die sache ranzugehen. :/

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

Re: P4 Step4 Random Test

Beitrag von sina »

hm...jetzt sind es 4001 statt 4000 :(

dstorck
Mausschubser
Mausschubser
Beiträge: 63
Registriert: 26. Mär 2009 07:58

Re: P4 Step4 Random Test

Beitrag von dstorck »

Bei mir sind es 3999, ich habe absolut keine Ahnung wo ich suchen soll.... das nervt so.

Benutzeravatar
misafir
Windoof-User
Windoof-User
Beiträge: 26
Registriert: 19. Okt 2008 05:13

Re: P4 Step4 Random Test

Beitrag von misafir »

sina hat geschrieben:hi..also bei mir laufen alle Tests (inkl. der Zusatztest aus dem Forum bzgl. rebalance in Schritt4) außer der random test bei 4;
es kommt die folgende Fehlermeldung:junit.framework.AssertionFailedError: still 4000 elements expected:<4000> but was:<4006>..

Ich hatte auch schon,dass es 4003 waren.Ich bin langsam echt am verzweifeln, da ich seit stunden den Fehler suche und keine ahnung habe,woran es liegt, aber im Grunde kann es ja nur etwas ganz kleines sein,sind ja nur 6 zu viel:-(


Hatte jemand vielleicht die gleiche Fehlermeldung und kann mir helfen????????????
Hab auch 4006 @ sina..
Ich fahr gleich zum Piloty und werd mich mal dran setzen. Mal gucken ob ich den Fehler finde :)

Antworten

Zurück zu „Archiv“