Translate

Sunday, August 7, 2016

complete tree



Apa yang dimaksud dengan
a. complete tree
b. binary tree
c. full binary tree
d. complete binary tree
e. perfect binary tree
Berikan contohnya masing-masing !

 Jawab:
a)Complete tree adalah tree dimana semua node leafnya berada pada depth n atau n-1 dan semua leaf yang berada pada depth n berada di sisi kiri.

Gambar : Complete Tree
b) Binary tree adalah tree dengan syarat bahwa tiap node harusnya boleh        memilki maksimal dua subtree ( left dan right subtree ) dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling banyak dua child.
Binary tree adalah sebuah strukutur data yang berguna saat kita harus membuat keputusan 2 arah pada setiap titik pada suatu proses. Sebagai contoh, apabila kita ingin mencari angka yang sama dalam sebuah daftar yang berisi angka. Salah satu caranya adalah dengan menbandingkan setiap angka dengan seluruh angka yang ada dalam daftar.  Akan tetapi, cara ini melibatkan proses perbandingan dalam jumlah besar.
Jumlah perbandingan dapat direduksi dengan menggunakan binary tree. Bilangan pertama pada daftar dijadikan sebuah node sebagai root dari  binary tree dengan left dan right subtree yang kosong. Setiap angka dalam list kemudian dibandingkan dengan angka pada root.
a.       Jika sama, maka kita mendapatkan angka yang sama (duplikatnya).
b.      Jika lebih kecil, kita tempatkan sebagai left subtree
c.       Jika lebih besar, kita tempatkan sebagai right subtree
Kalau subtree masih kosong, dan angka yang sedang dicek belum ada di tree, maka angka tersebut kita tempatkan dalam sebuah node pada subtree tersebut. Kalau subtree tidak kosong, , kita bandingkan lagi dengan nilai root pada subtree, lalu proses diulang kembali dari awal.







Gambar : Binary Tree
Contoh penggunaannya:
/*baca bilangan pertama pada list, kemudian tempatkan pada node tunggal binary tree*/
scanf(“%d”, &number);
tree=maketree(number);
while(there are numbers left in the input)
{
                        i.   scanf(“%d”, &number);
                      ii.   p=q=tree;
                    iii.   while(number!=info(p)&&q!=NULL)
                      iv.   {
1.  p=q;
a.  if(number<info(p))
2.  q=left(p);
a.  else
3.  q=right(p);
                        v.   }/*end while*/
                      vi.   if (number==info(p)) printf(“%d %s), number, “is a duplicate”);
                    vii.   /*insert number to the left or the right of  p*/                                    
else if(number<info(p))
setleft(p, number);
else
setright(p, number);
} //end while
c)  Full binary tree adalah binary tree yang setiap nodenya ( kecuali leaf ) memilki      dua child dan tiap subtree harus mempunyai panjang path yang sama.
Contoh :

d)  Complete binary tree adalah stricly binary tree yang semua leafnya berada pada  level depth.
Contoh :

e)      Perfect binary tree adalah tree yang tiap levelnya memiliki jumlah node yang maksimum (biasanya simetris).
Contoh :

Gambar : Perfect Binary Tree
3.  Apa yang dimaksud dengan
a. tree traversal
b. in-order traversal
c. post-order traversal
d. level-order traversal
Berikan contohnya masing-masing!

Jawab :
a.  Tree traversal adalah proses mengunjungi seluruh node-node pada tree, masing-masing sekali. Hasilnya adalah urutan informasi secara linear yang tersimpan dalam tree.
Contoh :

Gambar : Tree Transversal
b.  In-order traversal
inorder (symmetric order) :
·         Traverse subtree kiri secara inorder
·         Kunjungi root
·         Traverse subtree kanan secara inorder
Contoh :

c.   Post-order traversal
postorder :
·         Traverse subtree kiri secara postorder
·         Traverse subtree kanan secara postorder
·         Kunjungi root
Contoh :

d.  Level-order traversal
preorder (depth-first order) ditunjukkan oleh tiga operasi berikut:
·         Kunjungi root
·         Traverse subtree kiri secara preorder
·         Traverse subtree kanan secara preorder
Contoh :


No comments:

Post a Comment

silahkan membaca dan berkomentar