Data Structure Chapter 5b TREE & INRY TREE Dahlia Widhyaestoeti, S.Kom
genda Hari Ini Simpul ohon iner roses (Operasi) pada ohon iner enelusuran ohon iner 2
Simpul ohon iner? Sebuah pohon biner, salah satu simpulnya bernomor = 75, ditanya nilai simpul superordinat simpul tersebut adalah 75 2n + 1 = 75 2n = 74 n = 37 Diketahui sebuah pohon biner dengan kedalaman = 3, maka a) Maksimum jumlah simpul pada level 3 = 15 b) Minimum jumlah simpul pada level 3 = 1 c) Maksimum jumlah seluruh simpul sampai dengan level 3 = 15 d) Minimum jumlah seluruh simpul sampai dengan level 3 = 4 C D E F G H I J K L M N O 3
roses (Operasi) ohon iner roses pada pohon biner merupakan satu rangkaian proses (atau fungsi-fungsi) yang dapat dibagi menjadi : 1. Inisialisasi 2. embuatan sebuah simpul 3. embuatan simpul akar 4. enambahan (insert) simpul ke dalam sebuah pohon 5. embacaan / penelusuran pohon biner 4
roses (Operasi) ohon iner Inisialisasi dan pembutan sebuah simpul Fungsi untuk inisialisasi : Void Inisialisasi() { = Null; = Null; } Fungsi untuk pembuatan sebuah simpul : Void uatsimpul(char X) { = (Simpul *) malloc(sizeof(simpul)); If (! = NULL) { >INFO = X; >Left = NULL; >Right = NULL; } Else { printf( Memory Heap Full ); Exit(1); } } 5
roses (Operasi) ohon iner Menjadikan sebuah simpul sebagai simpul akar suatu pohon Fungsi untuk menjadikan sebuah simpul sebagai simpul akar : Void uatsimpulkar() { If( == NULL) {if(! = NULL) { = ; >Left = NULL; >Right = NULL; } Else printf( \n Simpul belum dibuat ); } Else rintf( pohon sudah ada ); } 6
roses (Operasi) ohon iner Insert sebuah simpul ke pohon yang sudah ada 1. Insert urut nomor simpul (insert level per level) 1. Sudah ada simpul akar 3. Setelah simpul baru diinsert pada pohon yang sudah ada 2. Sudah dibuat simpul baru yang akan diinsert Simpul baru, diinsert pada pohon di pointer LEFT simpul akar 7
roses (Operasi) ohon iner Insert sebuah simpul ke pohon yang sudah ada 1. Insert urut nomor simpul (insert level per level) Gambar disederhanakan : Menginsert simpul sebagai subordinat kiri simpul, instruksinya : >Left = ; Menginsert simpul sebagai subordinat kanan simpul, instruksinya : >Right = ; 8
roses (Operasi) ohon iner Insert sebuah simpul ke pohon yang sudah ada 2. Insert simpul pada nomor simpul tertentu C K D E F G H I 9
roses (Operasi) ohon iner Insert sebuah simpul ke pohon yang sudah ada 2. Insert simpul pada nomor simpul tertentu C D E F G H K I Untuk menginsert simpul baru (K) menjadi subpohon kiri simpul F, dilakukan dengan instruksi : >Right >Left >Left = 10
roses (Operasi) ohon iner Insert sebuah simpul ke pohon yang sudah ada 2. Insert simpul pada nomor simpul tertentu 1 C 3 6 D E F G H I K 12 L M N O Q S V W X Y Z a 25 50 11
roses (Operasi) ohon iner enelusuran pohon biner enelusuran (tranverse atau tranversal) pohon biner, maksudnya membaca atau mengunjungi (visit) simpul-simpul pohon biner dengan urutan tertentu. da 3 penelusuran yang bila di tambah dengan kebalikannya menjdi 6 macam penelusuran : 1. reorder (atau depth first order) 4. Inverse reorder 2. Inorder (atau symetric order) 5. Inverse Inorder 3. ostorder 6. Inverse ostorder + ila ditelusuri secara reorder Hasil penelusuran + (bentuk REFIX) Inorder ostorder + (bentuk INFIX) + (bentuk OSTFIX) 12
roses (Operasi) ohon iner enelusuran pohon biner C ila ditelusuri secara reorder Inorder ostorder Hasil penelusuran C C C Karena bukan merupakan arithmetic statement, jadi tidak diistilahkan dengan bentuk INFIX,REFIX dan OSTFIX. enelusuran reorder: mbil akar Telusuri secara preorder subpohon kiri Telusuri subpohon kanan 13
roses (Operasi) ohon iner enelusuran pohon biner reorder Inorder ostorder KR, KIRI, KNN KIRI, KR, KNN KIRI, KNN, KR re : In : ost: 14
roses (Operasi) ohon iner enelusuran pohon biner C re : C In : C ost: C C D E F re : D E C F In : D E F C ost: D E F C 15
roses (Operasi) ohon iner enelusuran pohon biner C D E F G H J K M re : D H E J K C F M G In : H D J E K F M C G ost: H D J K E M F G C 16