Ambil Tinggi
Pelajaran 5 dari 16 dalam kursus Pohon AVL, Seri Struktur Data #10 di Coddy.
Tambahkan method getHeight ke AVLTree untuk membaca tinggi yang tersimpan pada sebuah node. Satu-satunya hal yang perlu diperhatikan adalah kasus null: subtree kosong tidak ada, jadi berdasarkan konvensi tingginya 0, satu angka lebih rendah daripada tinggi leaf sebenarnya, yaitu 1.
Dengan mengarahkan setiap pencarian tinggi melalui satu method ini (alih-alih membaca node.height secara langsung di mana-mana), pemeriksaan null hanya perlu ditulis sekali.
Tantangan
PemulaTulis method getHeight(node) pada AVLTree yang mengembalikan 0 jika node bernilai null, jika tidak, kembalikan node.height.
Coba sendiri
#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;
}
Semua pelajaran di Pohon AVL, Seri Struktur Data #10
Latihan sendiri: Compiler C online