Höhe abrufen
Lektion 5 von 16 im Kurs AVL-Baum - Datenstrukturen-Serie #10 von Coddy.
Fügen Sie AVLTree eine getHeight-Methode hinzu, die die gespeicherte Höhe eines Knotens ausliest. Der einzige Trick ist der Null-Fall: Ein leerer Teilbaum existiert nicht, daher ist seine Höhe konventionsgemäß 0, eins weniger als die Höhe eines echten Blattes von 1.
Indem jede Höhenabfrage über diese eine Methode geleitet wird (anstatt node.height überall direkt auszulesen), muss die Null-Prüfung nur einmal geschrieben werden.
Aufgabe
AnfängerSchreiben Sie eine Methode getHeight(node) für AVLTree, die 0 zurückgibt, wenn node null ist, andernfalls node.height zurückgibt.
Probier es selbst
#include <stdio.h>
#include <string.h>
#include "avltree.h"
int main(void) {
AVLTree* tree = AVLTree_create();
char line[256];
while (fgets(line, sizeof(line), stdin) != NULL) {
line[strcspn(line, "\r\n")] = '\0';
if (strcmp(line, "null") == 0) {
printf("%d\n", AVLTree_getHeight(tree, NULL));
}
if (strcmp(line, "null") != 0) {
int h;
sscanf(line, "%d", &h);
Node* n = Node_create(0);
n->height = h;
printf("%d\n", AVLTree_getHeight(tree, n));
}
}
return 0;
}