Unten habe ich ein Stück Code geschrieben, um diese Frage zu beantworten. Colud Sie bitte sagen Sie mir 1) Wenn Sie finden Sie irgendwelche Fehler in meinem Code 2) alle andere beste Lösung?Frage zu Baum Datenstruktur, Drucken jeder Ebene Summe (Ebene Summe = Summe der Geschwister-Daten)?
Frage: Frage zu Baum Datenstruktur, Drucken jeder Ebene Summe (Ebene Summe = Summe der Geschwister-Daten)?
struct tree{
int data;
struct *left;
struct *right;
};
API ProType ist Hohlraum EachLevelSum (struct Baum * root);
Meine Antwort ist
void EachLevelSum(struct tree *root)
{
static int level=0;
static int a[100] = {0}; // I am assuming , at MAX 100 levels in tree
if(root == NULL)
{
return;
}
else
{
a[level += root->data;
level++;
EachLevelSum(root->left);
level--;
level++;
EachLevelSum(root->right);
level--;
if(level == 0)
{
int i;
for(i=0; i<100 && a[i]!=0 ; i++)
{
printf("\n level: %d sum = %d", i, a[i]);
}
}
}
}
Linie 12 in EachLevelSum hat einen Tippfehler 'a [Level + = 'muss sein' a [level] + = ' – Mikhail
haben Sie daran gedacht, eine Augmented-Baum definieren, dh jeder Knoten würde Speichere diese Levelsumme und sie wird aktualisiert, wenn der Baum aktualisiert wird. Dann wäre es eine Frage der Wurzelsumme :) –