Получение высоты
Урок 5 из 16 курса AVL-дерево — Серия «Структуры данных» №10 на Coddy.
Добавьте метод getHeight в AVLTree, который считывает сохраненную высоту узла. Единственная хитрость заключается в случае с null: пустое поддерево не существует, поэтому по соглашению его высота равна 0, что на единицу меньше высоты настоящего листа, равной 1.
Выполнение каждого поиска высоты через этот единственный метод (вместо прямого чтения node.height повсюду) означает, что проверку на null нужно написать всего один раз.
Задание
НовичокНапишите метод getHeight(node) в классе AVLTree, который возвращает 0, если node равен null, в противном случае возвращает node.height.
Попробуйте сами
#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;
}
Все уроки раздела AVL-дерево — Серия «Структуры данных» №10
2Проект: AVL-дерево
Класс NodeКласс AVLTree