Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
--- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
---- Algorithmen (http://www.informatikerboard.de/board/board.php?boardid=17)
----- Rekursives Blätter Zählen bis Höhe k (Baum) (http://www.informatikerboard.de/board/thread.php?threadid=2709)


Geschrieben von Chirs am 27.12.2015 um 13:11:

  Rekursives Blätter Zählen bis Höhe k (Baum)

Meine Frage:
Hallo zusammen,

ich hätte eine Frage bezüglich einer Aufgabe, die mir in meinem Studium gestellt wurde.
Und zwar soll ich eine rekursive Funktion schreiben, die die Anzahl der Blätter in einem Baum bis zur einer gewissen Höhe k zählt.

Ich habe einen grundlegenden Ansatz für diese Aufgabe doch leider bin ich mir nicht zu 100 % sicher wie ich diesen programmiertechnisch verwirklichen kann.

Vielleicht weiß ja jemand von euch wie so etwas funktioniert.


Ich bedanke mich schon mal für eure Hilfe.


lg,

Chirs

Meine Ideen:
Die Höhe eines Knoten k ist 0 falls k die Wurzel ist.
Sonst ist die Höhe k+1.
Ein Blatt ist ein Knoten ohne Teilbaum.



Geschrieben von eulerscheZahl am 27.12.2015 um 13:31:

 

Ich erweitere meinen alten Code:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
int count(struct Node* n, int depthRemaining) {
	if (depthRemaining < 0 || n == NULL) return 0;
	return 1 + count(n->left, depthRemaining-1) + count(n->right, depthRemaining-1);
}

int main(void) {
	//... (Baum erzeugen)
	printf("%d\n", count(root, 1)); //3
	printf("%d\n", count(root, 2)); //4
}



Geschrieben von Chirs am 27.12.2015 um 15:21:

 

Dankeschön smile


Forensoftware: Burning Board, entwickelt von WoltLab GmbH