Pertemuan – 8 Struktur Data Pohon/Tree Dipersiapkan oleh : Boldson Herdianto S., S.Kom., MMSI. POHON / TREE Struktur Data Struktur data yang terdiri dari akar (root), dan subpohon-subpohon dalam susunan berhirarki ROOT/AKAR Simpul / Node / Vertex TINGKAT (LEVEL) DAN KEDALAMAN (DEPTH) POHON Struktur Data Pohon Tingkat dimulai dari 0, 1, 2 dst Kedalaman dimulai dari 1, 2, 3, dst (tingkat + 1) TINGKAT 0 TINGKAT 1 TINGKAT 2 TINGKAT 3 DERAJAT SIMPUL Struktur Data Pohon Derajat = jumlah anak yang dimiliki sebuah simpul Derajat 2 Derajat 2 Derajat 0 Derajat 3 NODE INTERNAL & EKSTERNAL Struktur Data Pohon Node Internal = node yang memiliki anak Node eksternal = node yang tidak memiliki anak (daun) Node Internal Node Internal Node Eksternal NOTASI POHON Struktur Data Pohon Cara penulisan / penggambaran suatu pohon Diagram Pohon NOTASI POHON Struktur Data Pohon Cara penulisan / penggambaran suatu pohon Diagram Venn NOTASI POHON Struktur Data Pohon Cara penulisan / penggambaran suatu pohon Notasi Kurung (A(B(D,E(I,J)),C(F,G,H))) atau (A (B(D)(E(I)(J))) (C(F)(G)(H))) NOTASI POHON Struktur Data Pohon Cara penulisan / penggambaran suatu pohon Notasi Tingkat LATIHAN NOTASI POHON Struktur Data Pohon Buat dalam diagram venn, notasi kurung dan notasi tingkat X Y Q P R T M U N S W Z POHON BINER Struktur Data Pohon Struktur Data Pohon yang maksimal memiliki 2 anak. JUMLAH MAKS NODE Struktur Data Pohon Jumlah maksimum node pada setiap tingkat adalah 2 pangkat n KAMUS DATA POHON BINER Struktur Data Pohon Kamus Data Type BTree = record < Kiri : BTree Info : char Kanan : BTree > P : BTree Kiri Info Kanan FISIK POHON BINER Struktur Data Pohon FISIK POHON BINER Struktur Data Pohon OPERASI DASAR Struktur Data Pohon CreateTree(P) : membuat pohon biner baru EmptyTree(P) : memeriksa apakah pohon biner kosong ? InsertTree(P,N) : menyisipkan simpul baru DeleteTree(P,N) : menghapus simpul Info(P) : mengetahui/mencetak isi simpul P Traversal : penelusuran pohon biner POHON BINER TERURUT Struktur Data Pohon 12 22 8 19 10 9 20 4 2 6 POHON BINER TERURUT Struktur Data Pohon 12 22 8 19 10 9 20 4 2 6 POHON BINER TERURUT menyisipkan simpul dgn aturan : simpul yang lebih kecil diletakkan di sebelah kiri simpul Procedure SisipUrutBTree(input/output P:BTree, input N:integer) If EmptyTree(P) then CreateTree(P) InsertTree(P,N) {untuk info(P)} Else If N < info(P) then SisipUrutBTree(P .kiri,N) else SisipUrutBTree(P .kanan,N) Endif Endif BUAT POHON BINER TERURUT Struktur Data Pohon 2, 3, 4, 5, 50, 10, 15, 13, 20, 12, 10, 5, 7 LATIHAN NOTASI POHON Struktur Data Pohon 2 3 2, 3, 4, 5, 50, 10, 15, 13, 20, 12, 10, 5, 7 4 5 5 0 1 0 5 7 1 0 1 2 1 5 1 3 2 0 PENELUSURAN POHON BINER Struktur Data Pohon PENELUSURAN POHON BINER Struktur Data Pohon Preorder (S L R) ??? Postorder (L R S) ??? Inorder (L S R)??? Pre : H F B A C G L J I M Post : A C B G F I J M L H In :ABCFGHIJLM KONVERSI POHON KE POHON BINER Anak pertama menjadi anak kiri, anak ke-2 menjadi cucu kanan, ke-3 jadi cicit kanan dst LATIHAN KONVERSI KE POHON BINER Struktur Data Pohon Konversi pohon umum ini ke pohon biner X Y Q P R T M U N S W Z LATIHAN KONVERSI KE POHON UMUM Struktur Data Pohon Konversi pohon biner ini ke pohon umum A B C X D Y I X J E PEMBENTUKAN POHON DARI HASIL TRAVERSAL DAN DERAJAT SIMPUL Preorder :U VWXY Derajat :2 2 0 0 0 Hasilnya : Cari yang derajat bukan NOL PEMBENTUKAN POHON DARI HASIL TRAVERSAL DAN DERAJAT SIMPUL Preorder :U VWXY Derajat Hasilnya : :2 2 0 0 0 Kita lanjutkan untuk yang satu ini …..