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

المرور بترتيب المستويات

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

يزور اجتياز بترتيب المستوى (يسمى أيضاً البحث بالعرض أولاً) الشجرة صفاً بصف: الجذر أولاً، ثم كلا ابنيه، ثم جميع الأحفاد الأربعة، وهكذا، بدلاً من الغوص بالعمق أولاً كما يفعل الترتيب البيني أو الترتيب المسبق.

الطريقة القياسية للقيام بذلك هي استخدام طابور: ابدأ بالجذر بداخله، ثم قم بإزالة العقدة الأمامية بشكل متكرر، وسجل قيمتها، وادفع أبناءها (اليسار قبل اليمين) إلى مؤخرة الطابور.

challenge icon

التحدي

سهل

اكتب دالة levelOrder(tree) تُرجع قائمة بكل قيمة في الشجرة، مستوى بمستوى، ومن اليسار إلى اليمين داخل كل مستوى.

جرّب بنفسك

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "avltree.h"
#include "solution.h"

int main(void) {
    AVLTree* tree = AVLTree_create();
    char line1[4096];
    fgets(line1, sizeof(line1), stdin);
    char* tok = strtok(line1, " \n");
    while (tok != NULL) {
        AVLTree_insert(tree, atoi(tok));
        tok = strtok(NULL, " \n");
    }
        int result[1024];
    int resultCount = levelOrder(tree, result);
    for (int i = 0; i < resultCount; i++) {
        if (i > 0) printf(" ");
        printf("%d", result[i]);
    }
    printf("\n");
    return 0;
}

جميع دروس شجرة AVL - سلسلة هياكل البيانات #10