strcomp



  • Hallo!
    Habe hier eine Prüfungsfrage und komme nicht so ganz dahinter:

    Im Hinblick auf welches Konzept des Software-Entwurfs ist diese Implementierung mit der Vergleichsfunktion strcomp nicht optimal:

    BNODE *search (char *mystring)
    {BNODE *p=root;
    int c;

    while (p && (c = strcomp (mystring, p->in.lname))) // um diese Zeile gehts
    p = p->s[c>0];
    return p;
    }
    Es soll hier in einem Baum sukzessive nach dem Knoten mit Inhalt mystring gesucht werden. (vielleicht besser durch Rekursivität? Ist das einzige was mir hierzu einfällt.)

    Danke für die Antworten


    Anmelden zum Antworten
     


  • Hallo Thommy,

    ist das die komplette Aufgabenstellung? Könntest Du das Ganze in C++-Code-Tags setzen, um es besser lesen zu können? Findest Du unten neben den Smileys.

    Danke!

    Oliver



  • Hi,

    BNODE *search (char *mystring)
    {
        BNODE *p=root;
        int c;
    
             while (p && (c = strcomp (mystring, p->in.lname))) // um diese Zeile gehts
                 p = p->s[c>0];
    
        return p;
    }
    

    1. Vielleicht sollte man statt strcomp(?? ich nehm mal an strcmpi) die Funktion
    memicmp einsetzen. Ob das dann schon etwas besser waere, kann ich allerdings
    nicht sagen.

    p = p->s[c>0];
    

    Versteh ich nicht! Warum den p = p -> s[c>0];? Wenn s der Nextpointer
    ist, wuerde man dann nicht einfach p = p -> s; schreiben? 😕

    Falls ich quatsch geschrieben habe, ignorier mich einfach

    mfg
    v R



  • Hi,

    ich frage mich immer noch, ob das das ganze Programm ist. Mit so einem Fragment alleine kann man doch eigentlich keine zufriedenstellende Antwort geben.

    Gruß

    Oliver


Anmelden zum Antworten