Pertemuan 11 Treaded Binary Tree Oleh Yoga Religia, S.Kom, M.Kom.
Pohon Biner Berbenang Pohon biner berbenang adalah pohon biner dimana semua pointer yang bernilai NULL dibuat menjadi benang (Thread). Jika jumlah simpul = n, maka terdapat pointer sebanyak 2 * n. Pada sebuah bohon biner berbenang, setiap daun (Leaf) akan memiliki benang, yaitu benang kiri dan benang kanan. Pada simpul lain selain akar dan daun mungkin akan memiliki 1 benang, bias berupa benang kanan atau benang kiri Pada simpul lain juga bisa jadi tidak memiliki benang samasekali. Pointer NULL dibuat memiliki benang karena digunakan untuk menunjuk simpul diatasnya dalam penelusuran inorder.
Pohon Biner Berbenang Bila berada di simpul R, maka successor inorder adalah simpul I Bila berada di simpul I, maka successor inorder adalah simpul S Bila berada di simpul S, maka successor inorder adalah simpul B Begitu seterusnya. A B D HI C FG K R S J E Head Root
Pohon Biner Berbenang Untuk keperluan program dibuatlah simpul kepala yang ditunjuk oleh pointer Head Head->Left dibuat untuk menunjuk ke simpul Akar Head->Right dibuat untuk menunjuk ke simpul Head Ada 2 benang yang menunjuk khusus ke simpul kepala : a)Simpul Leaf paling Kiri b)Simpul Leaf paling kana A B D HI C FG K R S J E Head Root
Stuktur Pohon Biner Berbenang Pada pohon biner berbenang, dibuat 2 buah element yang berisi penanda (flag). Kedua penanda tersebut diberinama FlagKiri dan FlagKanan. Apabila FlagKiri atau FlagKanan berisi “0” maka pointer Left atau Right tersebut berfungsi sebagai Busur. Apabila FlagKiri atau FlagKanan berisi “1” maka pointer Left atau Right tersebut berfungsi sebagai Benang. Info Flag Kiri Flag Kanan Info 01
Pembuatan Pohon Biner Berbenang Buat Simpul (‘A’) ;BuatSimpulAkar ( ) ; Buat Simpul (‘h’) ;BuatSimpulHead ( ) ; Buat Simpul (‘B’) ;Akar -> Left = P ; Buat Simpul (‘C’) ;Akar -> Right = P ; P -> Right = Head ; P -> FlagKanan = 1 ; Buat Simpul (‘D’) ;Akar -> Left -> Left = P ; P -> Left = Head ; P -> FlagKiri = 1 ; P -> Right = Akar -> Left ; P -> FlagKanan = 1 ; Buat Simpul (‘E’) ;Akar -> Left -> Right = P ; Q = P ; Buat Simpul (‘F’) ;Akar -> Right -> Left = P ; P -> Left = Akar ; P -> Right = Akar -> Right ; P -> FlagKiri = 1 ; P -> FlagKanan = 1 ; Buat Simpul (‘G’) ;Q -> Left = P ; P -> Left = Akar -> Left ; P -> Right = Q ; P -> FlagKiri = 1 ; P -> FlagKanan = 1 ; Buat Simpul (‘H’) ;Q -> Right = P ; P -> Left = Q ; P -> Right = Akar ; P -> FlagKiri = 1 ; P -> FlagKanan = 1 ;