wpc114
-
wobei mit delete sicher nicht C++ delete gemeint ist. Gerade bei den WPC Fragestellungen würde es mich sehr wundern, wenn die so viel C++ könnten, dass die delete kennen (ich sag nur struct link *ptr; :))
Ich geb ein Zeiger auf den zuerst gefundenen Eintrag zurück. Das erscheint mir am sinnvollsten und ich muss einfach nur return ptr; machen

-
also nicht im sinne von "speicher freigeben"? einfach nur die liste neu zusammensetzen.. bzw die werte zwischen num1 und num2 übergehen?
ohne irgend ein c++ delete oder free() hm..
dann bleib ich bei meiner ersten variante
struct link *wpc114_(struct link *start, int num1, int num2) { struct link * element ; while ( start -> key != num1 ) element = ++ start ; while ( element -> key != num2 ) start -> next = ++ element ; return start; // mit diesem unterschied.. wäre dann die fundstelle von num1 }
-
stahl schrieb:
struct link *wpc114_(struct link *start, int num1, int num2) { struct link * element ; while ( start -> key != num1 ) element = ++ start ; while ( element -> key != num2 ) start -> next = ++ element ; return start; // mit diesem unterschied.. wäre dann die fundstelle von num1 }Bist du dir sicher, dass du den code ernst meinst?
-
Wenn num1 an erster Stelle ist funktioniert der Code nicht...
Wenn num2 vor num1 kommt funktioniert der Code nicht...MfG SideWinder
-
Bist du dir sicher, dass du den code ernst meinst?
das hilft mir jetzt reichlich wenig. sag mir bitte direkt was
dir da nicht passt
-
schade

-
stahl schrieb:
Bist du dir sicher, dass du den code ernst meinst?
das hilft mir jetzt reichlich wenig. sag mir bitte direkt was
dir da nicht passt
Siehe Post von mir?

MfG SideWinder
-
ich persönlich finde das ++ auf ein list node etwas komisch.
da macht man normalerweise next - schliesslich ist es eine liste und kein array
-
Shade Of Mine schrieb:
ich persönlich finde das ++ auf ein list node etwas komisch.
Hihi, das sah so schön aus, hab ich glatt übersehen

MfG SideWinder
-
das sah auch ursprünglich mal so aus
while ( element -> key != num2) start -> next = element = element -> next ;das andere war halt kürzer..
aber die zwei fälle hab ich nu wirklich nicht bedacht..
falls num1 an erster stelle steht.. gut..
dann einfach nochif ( start -> key == num1 ) element = start ; elsedazu.. und das num2 vor num1 kommt nehme ich einfach mal nicht an

jedenfalls noch nicht..
-
oh.. und dann könnten sie auch noch beide gleich sein..und und und

-
Und schon bist du auf über 100 Tokens - also du musst noch was basteln *g*
MfG SideWinder
-
bei ca. 153

nu darf aber num2 vor num1 kommen und beide dürfen gleich sein.. oh man..
ach und natürlich darf auch einer von beiden am anfang stehen *g*
-
verdammt, beide gleich hab ich noch nicht berücksichtigt

wie viele Tokens habt ihr jetzt wirklich?
-
kingruedi schrieb:
wie viele Tokens habt ihr jetzt wirklich?
Habs vorhin eingeschickt - allerdings ungetestet, weil ich zu faul war.
Ohne Funktionskopf und { und } - 36 Token
Berücksichtigt aber weder num1==num2 noch num2 vor num1
-
num1==num2 macht ja eigentlich wenig Sinn oder soll dann das so aussehen?
wpc114(link{1,10,-1,5,4,3},-1,-1); link[1] -> link[10] -> link[-1] - / link[5] -> link[4] -> link[3] ^ | | | -----also das die letzten verloren gehen? Die erwarten ja sicher nicht, dass man selber dupliziert?
@ShadeOfMine
hmm, ich brauch für das gleiche 1 Token mehr
-
wenn alles was wir hier so hatten berücksichtig werden soll komm ich auf
122
ansonsten 36
-
argh, leider war ich zu dumm meinen Code abzuschicken. Aber der wär 14 Token kürzer, als der Gewinner Code (wenn ich mich nicht verzählt hab)
struct link *wpc114(struct link *ptr,int num1,int num2) { while( !(ptr->key==num1 || ptr->key==num2 && (num2=num1,1)) ) ptr=ptr->next; while(ptr->next->key!=num2) ptr->next=ptr->next->next; return ptr; }