Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

الحصول على الارتفاع

الدرس 5 من 16 في دورة شجرة AVL - سلسلة هياكل البيانات #10 على Coddy.

أضف طريقة getHeight إلى AVLTree تقرأ الارتفاع المخزن للعقدة. الحيلة الوحيدة هي حالة الـ null: الشجرة الفرعية الفارغة غير موجودة، لذا فمن المتعارف عليه أن ارتفاعها هو 0، أي أقل بواحد من ارتفاع الورقة الحقيقية البالغ 1.

توجيه كل عملية بحث عن الارتفاع من خلال هذه الطريقة الواحدة (بدلاً من قراءة node.height مباشرة في كل مكان) يعني أن التحقق من الـ null يجب كتابته مرة واحدة فقط.

challenge icon

التحدي

مبتدئ

اكتب طريقة 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