- Deskripsi Tree
Kumpulan node yang saling terhubung satu sama lain dalam suatu kesatuan yang membentuk layakya struktur sebuah pohon.
Struktur pohon adalah suatu cara merepresentasikan suatu struktur hirarki (one-to-many) secara grafis yang mirip sebuah pohon, walaupun pohon tersebut hanya tampak sebagai kumpulan node-node dari atas ke bawah.
Suatu struktur data yang tidak linier yang menggambarkan hubungan yang hirarkis (one-to-many) dan tidak linier antara elemen-elemennya.
- Contoh penggunaan struktur pohon :
- Silsilah keluarga
- Parse Tree (pada compiler)
- Struktur File
- Pertandingan
Struktur Pohon

- Operasi-operasi Pada Tree
- Insert: menambah node ke dalam Tree secara rekursif. Jika data yang akan dimasukkan lebih besar daripada elemen root, maka akan diletakkan di node sebelah kanan, sebaliknya jika lebih kecil maka akan diletakkan di node sebelah kiri. Untuk data pertama akan menjadi elemen root. - - Find: mencari node di dalam Tree secara rekursif sampai node tersebut ditemukan dengan menggunakan variable bantuan ketemu. Syaratnya adalah tree tidak boleh kosong.
- Traverse: yaitu operasi kunjungan terhadap node-node dalam pohon dimana masing-masing node akan dikunjungi sekali.
- Count: menghitung jumlah node dalam Tree.
- Height : mengetahui kedalaman sebuah Tree.
- Find Min dan Find Max : mencari nilai terkecil dan terbesar pada Tree.
- Child : mengetahui anak dari sebuah node (jika punya).
- Daun/leaf : Simpul yang derajat = 0 disebut daun / leaf
- Hubungan antar simpul : bapak, ,anak, paman, dll
- Tingkat (level)
- Derajat (degree)
- Tinggi (height)/kedalaman (depth) : height = tingkat maksimum – 1
- Ancestor : semua simpul yang terdapat pada lintasan/jalur dari akar sampai simpul tersebut
- Forest (Hutan) : kumpulan sejumlah pohon yang tidak saling berhubungan - Implementasi pohon biner dalam bahasa C
Program berikut menunjukkan bagaimana membangun sebuah pohon biner dalam program C. Menggunakan alokasi memori dinamis, pointer dan rekursi. Sebuah pohon biner, sangat berguna dalam struktur data, karena memungkinkan penyisipan lebih efisien, pencarian dan penghapusan dalam daftar diurutkan. Sebagai pohon itu pada dasarnya adalah sebuah struktur yang didefinisikan secara rekursif, pemrograman rekursif adalah cara alami dan efisien untuk menanganinya.
Algoritma Transversal (PreOrder, InOrder, PostOrder)
Inorder Non Rekursif

PostOrder Non Rekursif

PreOrder Rekursif

Inorder Rekursi
Preorder Non Rekursif
Tidak ada komentar:
Posting Komentar