wpc114



  • hmm sidewinder, wo steht da bitte dass num1 vor num2 steht? 🙄
    und selbst wenn gehört dein 1. ++ptr woanders hin :p

    das mit dem löschen seh ich aber genauso, als rückgabe macht wohl nur start sinn,
    aber da sollte man die auch mal wieder besser fragen...
    warum müssen die sich eigentlich immer so ungenau ausdrücken? 😡



  • 1. Das habe ich implizit angenommen, stimmt aber, in der Angabe stehts nicht...

    2. Naja die kleine Endlosschleife *g*, aber das erste gehört schon dort hin wo es ist. Die Positionen der Werte selbst sollen doch nicht gelöscht werden.

    3. Warum sich die allerdings nicht auf eine explizitere Ausdrucksweise einigen ist mir auch schleierhaft - gerade bei einem Wettbewerb wären klare Angaben gut 👎

    MfG SideWinder



  • ich nehme an: delete = verstecken 🕶

    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 ?
    }
    

    kommt sogar 'ne anständig verlinkte liste bei raus...
    vielleicht mag ja jemand da doch noch 'nen free() reinbauen 😉



  • Weiterer Punkt: Dürfen Speicher-Leaks entstehen?

    MfG SideWinder



  • Irgendwie ist es in jedem wpc Thread das gleiche: Bevor ihr eure Lösungen vergleichen könnt, müsst ihr erstmal 3 Seiten die nicht ordentlich vorgegebenen Regeln diskutieren - ein Armutszeugnis von den Softies wie Volkard gerne sagt. 🙄



  • na so kriegen wir die 3 seiten aber nie voll 🙄
    oder ham alle andern schon aufgegeben?

    werd ich wohl auch tun,
    hab keinen plan welchen von meinen ca. 6 lösungen,
    die ich für die unterschiedlichen aufgabenstellungen gebaut hab,
    ich jetzt abgeben soll...

    stahl, haste denn eigentlich mal ne antwort bekommen?



  • nö..

    entweder war mein englisch zu schlecht.. oder hm..

    aber Gaspode, zeig doch mal eine oder mehrere deiner varianten 🙂



  • Finde wir wollten hier im Forum den Acme-Beitrag nehmen selbst Regeln erstellen und hier den Gewinner ausschreiben! 😉

    MfG SideWinder



  • wie zählen die eigentlich die Code Länge? Nach Anzahl der Tokens?

    Wenn ja, wie viele Tokens habt ihr (ohne Funktionskopf und den {} drum rum :))?

    Berücksichtigt ihr nun ]num2;num1[ auch?

    Ich hab zZ. 54 (berücksichtige aber ]num2;num1[)



  • kingruedi schrieb:

    wie zählen die eigentlich die Code Länge? Nach Anzahl der Tokens?

    Ja, steht auch irgendwo auf der Seite, und jede zweite Woche hier im Forum 😃



  • @kingruedi:

    - Löscht du die Elemente auch mit delete?
    - Was gibst du zurück?

    MfG SideWinder



  • das würd' mich jetzt auch interessieren..

    vielleicht können wir uns ja schonmal drauf einigen, dass für die elemente zwischen num1 und num2 free bzw delete benutzt werden muss?
    .. also nicht so wie ich das in meinem beispiel gemacht habe 😉

    für return hab ich keine idee.. wüsste auch nicht welche position da zurückgeben werden sollte.. also welche sinnig wäre 🙂



  • Steht da irgendwas von einem free oder delete?

    Darf ich mal kurz zitieren

    All non-deleted entries should be left intact in the same order as in the original list.

    Das einzige was unklar ist, ist ob num2 vor num1 kommen kann - und was man returnen soll.

    Alles andere steht doch da - oder habe ich etwas übersehen?



  • The function should delete all the nodes between the first occurrence of num1 in the list and the first occurrence of num2



  • 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 😉


Anmelden zum Antworten