Menu
CoddyTech

Penerus Suatu Nilai

Pelajaran 16 dari 16 dalam kursus Pohon AVL, Seri Struktur Data #10 di Coddy.

Successor in-order dari sebuah nilai adalah nilai terkecil di dalam tree yang lebih besar darinya, yaitu nilai yang akan muncul tepat setelahnya dalam list terurut. Jika nilai tersebut adalah nilai maksimum di dalam tree, nilai itu tidak memiliki successor.

Kamu bisa menemukannya dalam satu kali lintasan tanpa perlu mengurutkan apa pun: telusuri dari root, dan setiap kali kamu bergerak ke kanan melewati nilai yang terlalu kecil, ingat node terakhir yang kamu tinggalkan saat bergerak ke kiri sebagai kandidat terbaikmu sejauh ini.

challenge icon

Tantangan

Mudah

Tulis fungsi successor(tree, value) yang mengembalikan nilai terkecil dalam pohon yang lebih besar dari value, atau -1 jika tidak ada.

Coba sendiri

#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");
    }
    char line2[256];
    fgets(line2, sizeof(line2), stdin);
    int p0 = atoi(strtok(line2, " \n"));
    int result = successor(tree, p0);
    printf("%d\n", result);
    return 0;
}

Semua pelajaran di Pohon AVL, Seri Struktur Data #10

Latihan sendiri: Compiler C online