Rahmady Liyantanto liyantanto@gmail.com liyantanto.wordpress.com Tree Struktur Data S1 Teknik Informatika Universitas Trunojoyo
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 Derajat = jumlah anak yang dimiliki sebuah simpul Struktur Data Pohon Derajat = jumlah anak yang dimiliki sebuah simpul Derajat 2 Derajat 2 Derajat 3 Derajat 0
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 Diagram Pohon Struktur Data Pohon Cara penulisan / penggambaran suatu pohon Diagram Pohon
NOTASI POHON Diagram Venn Struktur Data Pohon Cara penulisan / penggambaran suatu pohon Diagram Venn
(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 Kurung (A(B(D,E(I,J)),C(F,G,H))) atau (A (B(D)(E(I)(J))) (C(F)(G)(H)))
NOTASI POHON Notasi Tingkat Struktur Data Pohon Cara penulisan / penggambaran suatu pohon Notasi Tingkat
Istilah Dalam Tree
POHON BINER Struktur Data Pohon Struktur Data Pohon yang maksimal memiliki 2 anak.
JUMLAH MAKS NODE 2 pangkat n Struktur Data Pohon Jumlah maksimum node pada setiap tingkat adalah 2 pangkat n
KAMUS DATA POHON BINER Struktur Data Pohon
FISIK POHON BINER Struktur Data Pohon Latihan : Kiri(100) Kanan(100) Kanan(kiri(100)) Kiri(Kiri(100)) Kanan(kanan(100)) Kiri(Kanan(200)) Kanan(Kiri(200)) INFO(Kiri(100)) INFO(Kanan(100)) INFO(Kiri(Kanan(100))) INFO(Kanan(kiri(100))) INFO(Kiri(Kiri(100))) INFO(Kanan(kanan(100)))
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
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 50 10 5 15 20 7 13 12 10
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 : A B C F G H I J L M
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 R S Q T U W Z P M N
LATIHAN KONVERSI KE POHON UMUM Struktur Data Pohon Konversi pohon biner ini ke pohon umum A B C X D Y I E X J
PEMBENTUKAN POHON DARI HASIL TRAVERSAL DAN DERAJAT SIMPUL Preorder : U V W X Y Derajat : 2 2 0 0 0 Hasilnya : Cari yang derajat bukan NOL
PEMBENTUKAN POHON DARI HASIL TRAVERSAL DAN DERAJAT SIMPUL Preorder : U V W X Y Derajat : 2 2 0 0 0 Hasilnya :