Menu
Coddy logo textTech

מחלקת צומת

שיעור 3 מתוך 16 בקורס עץ AVL – סדרת מבני נתונים מס' 10 של Coddy.

כל צומת בעץ מאחסן ארבעה דברים: את ה־value שלו, מצביעים לילד left ולילד right, ואת ה־height שלו. צומת חדש לגמרי הוא עלה, ולכן הגובה שלו מתחיל ב־1 ועדיין אין לו ילדים.

מעקב אחר הגובה ישירות בצומת (במקום לחשב אותו מחדש על ידי מעבר בעץ בכל פעם) הוא מה שמאפשר לכל פעולה בהמשך לבדוק איזון בזמן קבוע.

challenge icon

אתגר

מתחילים

כתבו מחלקה Node עם בנאי שמקבל value ושומר אותו, מגדיר את left ואת right כ־null, ומגדיר את height ל־1.

נסו בעצמכם

#include <stdio.h>
#include "node.h"

int main(void) {
    char line[256];
    while (fgets(line, sizeof(line), stdin) != NULL) {
        int v;
        if (sscanf(line, "%d", &v) != 1) {
            continue;
        }
        Node* n = Node_create(v);
        if (n->left == NULL && n->right == NULL) {
            printf("%d %d null null\n", n->value, n->height);
        } else if (n->left == NULL) {
            printf("%d %d null %d\n", n->value, n->height, n->right->value);
        } else if (n->right == NULL) {
            printf("%d %d %d null\n", n->value, n->height, n->left->value);
        } else {
            printf("%d %d %d %d\n", n->value, n->height, n->left->value, n->right->value);
        }
    }
    return 0;
}

כל השיעורים ביחידה עץ AVL – סדרת מבני נתונים מס' 10

תרגלו בעצמכם: קומפיילר C אונליין