Ich glaub es ist wirklich einfacher es in zwei Funktionen zu packen und erst die Knoten zu zählen.
Vielen Dank für deine Hilfe.
eulerscheZahl
Ja, aber dann musst du das Ergebnis zwischenspeichern.
Chirs
Ok danke trotzdem.
Kann man deinen Code auch ohne ? schreiben also in solcher Form wie ich den meinen geschrieben habe ? Weil ich leider diesen Operator nicht benutzen darf.
Grüße
eulerscheZahl
Mir fällt auch nichts besseres ein als der Code, den ich eben geschrieben habe, oder das Zählen aller Knoten und anschließende Subtrahieren von 1.
Chirs
Ja genau soweit waren wir aber wie soll ich das dann einbauen, dass es bei einem Knoten keine Verzweigung gibt ?
Weil daran verzweifle ich gerade ein wenig.
Grüße
eulerscheZahl
Hatten wir das nicht schon?
Damit kriegst du bei einem Baum aus einem einzigen Knoten 1 raus.
Chirs
Danke für die Antwort, weil ich es in diesem Stil programmieren sollte:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
int verzweigungen(textbaum *b)
{
if (b==NULL)
return 0;
else if (b->left == NULL) && (b->right == NULL)
return 1;
else return (verzweigung(b->left)+verzweigung(b->right));
};
Dann würde doch dieser Code funktionieren oder ? Da ich beide Terminierungsfälle abgedeckt habe.
Grüße
eulerscheZahl
Es gibt 2 Terminierungsfälle:
Der Knoten selbst ist NULL oder BEIDE Kinder sind NULL (eins reicht nicht, damit kannst du immer noch eine Liste bauen). Wenn wir im 2. Fall trotzdem weitermachen, schadet das aber nicht: dann wird die Funktion mit NULL aufgerufen und wir sind wieder bei Fall 1 (der muss sowieso abgedeckt werden).
Was gibt es denn daran auszusetzen, dass du das nicht nehmen darfst?
Wenn b leer return 0
Wenn b->left oder b->right == NULL return 1
Aber wo ich noch nicht ganz durchgeblickt habe ist dass ich doch eigtl noch zwei weitere Terminierungsfälle habe und zwar wenn b->left und b->right !=0 sind es ja zwei Verzweigungen und wenn b->left und b->right = 0 habe ich keine Verzweigung.
Wie sollte ich es dann deiner Meinung nach aufbauen ?
Sry für die Anfängerfrage. Würde mich freuen wenn du mir weiterhelfen könntest.
Grüße
eulerscheZahl
Jetzt hat der Baum mit den 3 Knoten von oben ja gar keine Verzweigungen mehr
Ich komme mir langsam vor wie Captain Hindsight.
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.