Menu
Coddy logo textTech

Seviye Düzenli Gezinme

Coddy'nin AVL Tree - Veri Yapıları Serisi #10 kursunda ders 15 / 16.

Bir seviye-sıralı dolaşma (genişlik öncelikli olarak da adlandırılır), ağacı satır satır ziyaret eder: önce kök, sonra her iki çocuğu, ardından dört torununun tamamı ve bu şekilde devam eder; in-order veya pre-order'ın yaptığı gibi derinlik öncelikli dalmak yerine.

Bunu yapmanın standart yolu bir kuyruktur: kök içindeyken başlayın, ardından öndeki düğümü tekrar tekrar çıkarın, değerini kaydedin ve çocuklarını (sağdan önce sol) kuyruğun arkasına ekleyin.

challenge icon

Görev

Kolay

Ağaçtaki her bir değeri, seviye seviye ve her seviye içinde soldan sağa olacak şekilde bir liste halinde döndüren bir levelOrder(tree) fonksiyonu yazın.

Kendin dene

#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 Tree - Veri Yapıları Serisi #10 bölümündeki tüm dersler