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.
Tantangan
MudahTulis 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
3Tantangan Latihan
Elemen Terkecil ke-KJumlah RentangLeluhur Bersama TerendahPenelusuran Berdasarkan Urutan LevelPenerus Suatu NilaiLatihan sendiri: Compiler C online