Tree (pohon)- Struktur data
TREE
Tree ialah Kumpulan node yang saling terhubung satu sama
lain dalam suatu kesatuan yang membentuk layakya struktur sebuah pohon. Struktur
pohon adalah suatu cara merepresentasikan suatu struktur hirarki (one-to-many)
secara grafis yang mirip sebuah pohon, walaupun pohon tersebut hanya tampak
sebagai kumpulan node-node dari atas ke bawah. Suatu struktur data yang tidak
linier yang menggambarkan hubungan yang hirarkis (one-to-many) dan tidak linier
antara elemen-elemennya.
NODE ROOT
Node root dalam sebuah tree adalah suatu node yang memiliki
hiarki tertinggi dan dapat juga memiliki node-node anak. Semua node dapat ditelusuri
dari node root tersebut.
Contoh penggunaan struktur pohon :
- Silsilah keluarga
- Hasil pertandingan yang berbentuk turnamen
- Struktur organisasi dari sebuah perusahaan
ISTILAH DALAM TREE
Contoh Tree
Datanya ialah : MASR
Ancestor (R) = S,M
Descendandt (S) = R
Parent (A) = S
Child (M) = A,S
Sibling (A) = S
Size = 4
Height = 3
Root = M
Deklarasi simpul tree :
Strcut simpulpohon{
Simpulpohon *induk;
Simpulpohon *kiri;
Simpulpohon *kanan;
Char kata[20]; //Tipe data bisa disesuaikan
};
Kunjungan :
Pre-order, in-order, dan post-order traversal
Pre-order, in-order, dan post-order traversal
mengunjungi setiap simpul dalam sebuah pohon dengan pengunjungan secara
berulang-ulang pada sub pohon kiri dan kanan dari akarnya. Jika akarnya
dikunjungi sebelum sub pohonnya, ini merupakan preoder. Jika akarnya dikunjungi
sesudah sub pohonnya, ini dinamakan postorder dan jika akarnya dikunjungi di
antara sub pohonnya, dinamakan inorder. In-order traversal sangat berguna dalam
pohon biner terurut, dimana traversal ini mengunjungi simpul dalam
urutan yang meningkat.
istilah-istilah umum dalam tree :
a) Prodecessor : node yang berada diatas node tertentu.
b) Successor : node yang berada di bawah node tertentu.
c) Ancestor : seluruh node yang terletak sebelum node tertentu dan terletak pada jalur yang sama.
d) Descendant : seluruh node yang terletak sesudah node tertentu dan terletak pada jalur yang sama.
e) Parent : predecssor satu level di atas suatu node.
f) Child : successor satu level di bawah suatu node.
g) Sibling : node-node yang memiliki parent yang sama dengan suatu node.
h) Subtree : bagian dari tree yang berupa suatu node beserta descendantnya dan memiliki semua karakteristik dari tree tersebut.
i) Size : banyaknya node dalam suatu tree.
j) Height : banyaknya tingkatan/level dalam suatu tree.
k) Root : satu-satunya node khusus dalam tree yang tak punya predecssor.
l) Leaf : node-node dalam tree yang tak memiliki seccessor.
m) Degree : banyaknya child yang dimiliki suatu node.
a) Prodecessor : node yang berada diatas node tertentu.
b) Successor : node yang berada di bawah node tertentu.
c) Ancestor : seluruh node yang terletak sebelum node tertentu dan terletak pada jalur yang sama.
d) Descendant : seluruh node yang terletak sesudah node tertentu dan terletak pada jalur yang sama.
e) Parent : predecssor satu level di atas suatu node.
f) Child : successor satu level di bawah suatu node.
g) Sibling : node-node yang memiliki parent yang sama dengan suatu node.
h) Subtree : bagian dari tree yang berupa suatu node beserta descendantnya dan memiliki semua karakteristik dari tree tersebut.
i) Size : banyaknya node dalam suatu tree.
j) Height : banyaknya tingkatan/level dalam suatu tree.
k) Root : satu-satunya node khusus dalam tree yang tak punya predecssor.
l) Leaf : node-node dalam tree yang tak memiliki seccessor.
m) Degree : banyaknya child yang dimiliki suatu node.
Beberapa jenis Tree yang memiliki sifat khusus :
Jenis-jenis Binary Tree :1) Binary Tree
Binary Tree adalah tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua subtree dan kedua subtree tersebut harus terpisah. Sesuai dengan definisi tersebut, maka tiap node dalam binary tree hanya boleh memiliki paling banyak dua child.a) Full Binary Tree
Binary Tree yang tiap nodenya (kecuali leaf) memiliki dua child dan tiap subtree harus mempunyai panjang path yang sama.
b) Complete Binary Tree
Mirip dengan Full Binary Tree, namun tiap subtree boleh memiliki panjang path yang berbeda. Node kecuali leaf memiliki 0 atau 2 child.
c) Skewed Binary Tree
yakni Binary Tree yang semua nodenya (kecuali leaf) hanya memiliki satu child.
Implementasi Binary Tree
Binary Tree dapat diimplemntasikan dalam Pascal dengan menggunakan double Linked List. Untuk nodenya, bisa dideklarasikan sbb :
Type Tree = ^node;
Node = record
Isi : TipeData;
Left,Right : Tree;
end;
2) Binary search Tree
Adalah Binary Tree dengan sifat bahwa semua left child harus lebih kecil daripada right child dan parentnya. Juga semua right child harus lebih besar dari left child serta parentnya. Binary seach tree dibuat untuk mengatasi kelemahan pada binary tree biasa, yaitu kesulitan dalam searching / pencarian node tertentu dalam binary tree. Contoh binary search tree umum :
Pada dasarnya operasi dalam binary search tree sama dengan Binary tree biasa, kecuali pada operasi insert, update, dan delete.
1. Insert : Pada Binary Search Tree, insert dilakukan setelah ditemukan lokasi yang tepat. (Lokasi tidak ditentukan oleh user sendiri).
2. Update : Seperti pada Binary Tree biasa, namun disini uapte akan berpengaruh pada posisi node tersebut selanjutnya. Bila setelah diupdate mengakibatkan tree tersebut bukan Binary Search Tree lagi, maka harus dilakukan perubahan pada tree dengan melakukan perubahan pada tree dengan melakukan rotasi supaya tetap menjadi Binary Search Tree.
3. Delete : Seperti halnya update, delete dalam Binary Search Tree juga turut mempengaruhi struktur dari tree tersebut.
(Keadaan awal merupakan lanjutan gambar sebelumnya)
Pada operasi di samping, delete dilakukan terhadap Node dengan 2 child. Maka untuk menggantikannya, diambil node paling kiri dari Right SubTree yaitu 13.
Komentar
Posting Komentar