المرور بترتيب المستويات
الدرس 15 من 16 في دورة شجرة AVL - سلسلة هياكل البيانات #10 على Coddy.
يزور اجتياز بترتيب المستوى (يسمى أيضاً البحث بالعرض أولاً) الشجرة صفاً بصف: الجذر أولاً، ثم كلا ابنيه، ثم جميع الأحفاد الأربعة، وهكذا، بدلاً من الغوص بالعمق أولاً كما يفعل الترتيب البيني أو الترتيب المسبق.
الطريقة القياسية للقيام بذلك هي استخدام طابور: ابدأ بالجذر بداخله، ثم قم بإزالة العقدة الأمامية بشكل متكرر، وسجل قيمتها، وادفع أبناءها (اليسار قبل اليمين) إلى مؤخرة الطابور.
التحدي
سهلاكتب دالة 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
3تحديات تدريبية
العنصر الأصغر رقم Kمجموع النطاقالسلف المشترك الأدنىالمرور بترتيب المستوياتالقيمة التالية لقيمة ما