Latihan: Kalkulasi Anatomi Pohon
Mengimplementasikan fungsi rekursif untuk menghitung total simpul (node) dan total daun (leaf) pada sebuah Pohon Biner.
Mengimplementasikan fungsi rekursif untuk menghitung total simpul (node) dan total daun (leaf) pada sebuah Pohon Biner.
Bayangkan Anda bekerja di divisi HRD dan diminta menganalisis struktur organisasi perusahaan. Bos Anda menanyakan dua hal:
Node).Leaf / Daun).Karena struktur organisasi berbentuk pohon hierarkis, kita tidak bisa menggunakan perulangan biasa. Kita harus menggunakan jurus Rekursif.
Kamu diminta melengkapi dua fungsi kalkulasi menggunakan pendekatan rekursif:
NbElmt (Menghitung Semua Simpul): Titik berhentinya adalah ketika pohon itu kosong (IsTreeEmpty(P)), yang mana jumlah elemennya pasti 0. Jika tidak kosong, maka jumlahnya adalah 1 (untuk akar saat ini) ditambah hasil pemanggilan fungsi ini kembali ke cabang kiri dan cabang kanan.NbDaun (Menghitung Daun): Titik berhentinya adalah ketika pohon hanya memiliki 1 elemen (IsTreeOneElmt(P)), yang berarti simpul itu adalah daun, sehingga jumlahnya 1. Jika ia memiliki cabang, teruskan penelusuran sampai menemukan daun.Program akan mencetak angka yang mewakili total keseluruhan simpul dan total daun dari pohon yang telah dibangun secara otomatis di dalam kode.
Berdasarkan struktur pohon pada kode, terdapat 6 simpul (A, B, C, D, E, F) dan 3 simpul daun (D, E, F).
Output:
=== ANALISIS POHON BINER ===
Total Simpul (Node) : 6
Total Daun (Leaf) : 3Hint: Rekursif Mencari Daun
Hati-hati saat menelusuri daun. Pastikan kamu mengecek keberadaan anak kiri dan kanan sebelum memanggil fungsi rekursif. Gunakan logikaif (P->left != NULL && P->right == NULL)untuk kondisi di mana hanya ada anak kiri, dan seterusnya.