Zeiger+Struct node?



  • Hallo, Ich habe dies (Link) als Klausuraufgabe erhalten, jedoch ohne Musterlösung und benötige eine mögliche Variante, wie man das lösen könnte. Danke schonmal



  • @dennis-born

    Kein Problem, ich fang gleich an, deine Hausaufgaben zu machen. Bis wann muss ich denn fertig sein?



  • @manni66

    Er will doch nicht, dass du seine Hausaufgaben machst! Er braucht doch nur eine mögliche Variante!



  • @Jockelx 😃 ich hab halt nächste woche klausur und bin bei dieser aufgabe ratlos, dachte hier finde ich erklärung/zumindest hilfe^^



  • @dennis-born
    Was haste denn bisher? Oder was hast du dir überlegt? Oder wo hängst du?

    Wenn ich mir die Aufgabenstellung durchlese erwarte ich Schlimmstes 😱, aber mal abwarten.



  • @dennis-born

    Du kannst hier sogar ganz hervorragende Hilfe bekommen. Allerdings musst du i.d.R. zumindest irgendwas mit einbringen, außer kreative Name für "mach meine Hausaufgabe" zu erfinden. Sprich:

    @DocShoe sagte in Zeiger+Struct node?:

    Was haste denn bisher? Oder was hast du dir überlegt? Oder wo hängst du?



  • mein skript gibt her:

    struct node {
    int val;
    node *rechts *links;
    }

    ist das soweit in korrekt für die struktur?
    und wie sollen die pointer jetzt auf die struktur/en zeigen?



  • @dennis-born sagte in Zeiger+Struct node?:

    ist das soweit in korrekt für die struktur?

    Syntaktisch? Nein, aber das sagt dir ja auch dein Kompiler.

    @dennis-born sagte in Zeiger+Struct node?:

    und wie sollen die pointer jetzt auf die struktur/en zeigen?

    Behindert beschrieben die Aufgabe, aber falls mit "auf die Struktur zeigen" die eigene Instanz gemeint ist, dann weist du im Konstruktor links und rechts auf "this" zu.



  • @dennis-born Ja, die Struktur passt so (bis auf das fehlende Komma zwischen *rechts und *links und das fehlende abschließende Semikolon).
    Normalerweise könnte man nun ein Array oder einen Container mit diesen Strukturen anlegen.
    Da aber in der Aufgabe steht, dass nur die Zeiger zgr1 bis zgr3 verwendet werden dürfen, gehe ich mal davon aus, dass die Strukturen per malloc oder new angelegt werden sollen.
    Anschließend gehst du einfach den Text und das Bild durch und weist den Strukturmembern die passenden Werte zu.
    Das Löschen sollte am Ende nicht vergessen werden.
    Es ist eben nur eine kleine Aufgabe, ob die allgemeinen Konzepte verstanden wurden.



  • @yahendrik Danke für die ausführliche Antwort, damit lässt sich arbeiten 🙂



  • @Jockelx sagte in Zeiger+Struct node?:

    Behindert beschrieben die Aufgabe, aber falls mit "auf die Struktur zeigen" die eigene Instanz gemeint ist, dann weist du im Konstruktor links und rechts auf "this" zu.

    Ich denke, das "auf die Struktur zeigen" hier soll nur eine Erklärung sein, was "node*" bedeutet. Ich vermute, dass das hier eine C-Aufgabe (nicht: C++, obwohl im C++-Forum gepostet) ist und es gar keine Konstruktoren gibt. Man soll nur einfach das Bild programmieren.



  • struct node {
        int val;
        node *rechts;
        node *links;
    };
    
    int main()
    {
        node *zgr1;
        node *zgr2;
        node *zgr3;
    	
        zgr1 = new node;
        zgr2 = new node;
        zgr3 = new node;
    	
        zgr1->val     = 1;
        zgr1->rechts  = zgr2;
        zgr1->links   = zgr 3;
    	
        zgr2->val     = 2;
        zgr2->rechts  = zgr3;
        zgr2->links   = zgr1;
    	
        zgr3->val     = 3;
        zgr3->rechts  = zgr1;
        zgr3->links   = zgr2;
    }
    

    ... und dann vergiss den quatsch ganz schnell wieder.


  • Mod

    @Swordfish sagte in Zeiger+Struct node?:

    ... und dann vergiss den quatsch ganz schnell wieder.

    Dann machen wir's doch lieber mit weniger Quatsch:

    node node1, node2, node3;
    node *zgr1=&node1, *zgr2=&node2, *zgr3=&node3;
    ...
    

    und dann ist's schon viel solider.



  • @SeppJ sagte in Zeiger+Struct node?:

    @Swordfish sagte in Zeiger+Struct node?:

    ... und dann vergiss den quatsch ganz schnell wieder.

    Dann machen wir's doch lieber mit weniger Quatsch:

    Widerspricht das nicht dem "Weitere Variablen dürfen Sie nicht verwenden" - denn hier sind jetzt 3 neue Variablen dazugekommen.

    Da dies offenbar eine Aufgabe ausschließlich zum Erlernen von Zeigern ist, finde ich "Quatsch" etwas weit hergeholt.



  • @wob sagte in Zeiger+Struct node?:

    Widerspricht das nicht dem "Weitere Variablen dürfen Sie nicht verwenden" - denn hier sind jetzt 3 neue Variablen dazugekommen.

    Deswegen (unter anderem) steht da ja auch: Vergiss den Quatsch.


  • Mod

    @wob sagte in Zeiger+Struct node?:

    Widerspricht das nicht dem "Weitere Variablen dürfen Sie nicht verwenden" - denn hier sind jetzt 3 neue Variablen dazugekommen.

    Vielleicht, vielleicht auch nicht. Denn du zitierst nur die Hälfte:
    "Als Zeigervariablen dürfen sie nur zgr1, zgr2, zgr3,... verwenden. Andere Variablen dürfen sie nicht benutzen!"
    Sind damit nun alle Formen von anderen Variablen gemeint oder nur Zeiger? Die Aufgabe ist schon auf Deutsch zweifelhaft formuliert, will einem aber eine andere Sprache beibringen, bei der es auf besonders klare und genaue Ausdrucksweise ankommt.


Log in to reply