ROOT Tree A ; suatu vertex dengan derajat
masuk = 0.
Tree A
atas vertex-vertex : V1, V2,
V3, ....... , Vn harus mempunyai :
1. Satu
root A Root
(A) = V1
2. Sisanya
(V2 , V3, ........,Vn)
dipartisi menjadi Tm subtree ; di mana : 0 m n-1
Contoh : TREE
A
Keterangan :
Root
(A) = B
Leaf
(A) = A,C,D,G,H
B
mempunyai 4 subtree : A,C,I,D
I
mempunyai 2 subtree : E,F
E
mempunyai 1 subtree : G
F
mempunyai 1 subtree : H
LEVEL dari suatu vertex A dalam Tree A adalah
LENGTH Path(P) (Root(A),A)
Dari gambar Tree A ;
- Tentukan
level A :
Length
P(Root(A),A)
Length
P(B,A) = (B,A) = 1
- Tentukan
level G :
Length
P(Root(A),G)
Length
P(B,G) = (B,I) (I,E) (E,G) = 3
HIGH dari suatu tree A adalah level
tertinggi ditambah 1.
WEIGHT dari suatu tree A adalah jumlah leaf
dalam tree A.
Contoh : Dari
Tree A ; High Tree A = 3 + 1 = 4
Weight
Tree A = 5 (A,C,D,G,H)
FOREST
|
Forest merupakan koleksi dari tree-tree.
Contoh
:
BINARY TREE
|
Binary Tree merupakan himpunan vertex-vertex yang
terdiri dari 2 subtree (dengan disjoint) yaitu subtree kiri dan subtree kanan.
Setiap
vertex dalam binary tree mempunyai derajat keluar max = 2.
Contoh
:
(1) (2) (3)
Derajat
keluar = 2 A adalah subtree
kanan A adalah subtree kiri
(4) (5)
Bukan
Binary Tree tapi Bukan
Binary Tree tapi General Tree
merupakan
Subtree Kiri/Kanan
SIMILAR & EKIVALEN dalam 2 BINARY TREE
|
Dua Binary Tree dikatakan Similar,
jika struktur dari kedua Binary Tree sama.
Contoh :
T1 T2
Dua Binary Tree dikatakan Ekivalen,
jika :
-
Similar
-
Informasi setiap vertex sama.
Contoh :
COMPLETE
|
Mis.
height dari binary tree T adalah k.
k-1
i = 0
Contoh
height dari binary tree T = 4. Gambar binary tree-nya :
4-1
i = 0
ALMOST COMPLETE
|
Mis.
height dari binary tree T adalah k.
-
pada level 0 hingga level k - 2, jumlah verteksnya adalah:
k-1
i = 0
dimana 1 <= u <= 2 k-1
4-2
HEIGHT MIN dan HEIGHT MAX
|
H
min = [ log 2 (N+1) ] H max = N
= Fungsi celling dengan pembulatan ke
atas
N = jumlah vertex
Contoh :
Diberi
7 buah vertex untuk membentuk suatu binary tree.
Hitung
H min dan H max dari kemungkinan binary tree yang terbentuk.
Gambar
binary treenya.
REPRESENTASI BINARY TREE
|
Contoh
:
Algoritma
untuk merubah General Tree menjadi Binary tree:
1.Insert
edge-edge yang menghubungkan sibling (saudara) kemudian delete semua edge yang menghubungkan parent dengan child-nya
kecuali edge yang paling kiri.
2.Rotasi 45o sedemikian
sehingga dibedakan subtree kiri dan kanan.
Contoh
:
Algoritma
untuk merubah Forest menjadi Binary tree:
1.
Insert edge-edge yang menghubungkan sibling (saudara) kemudian delete semua edge yang menghubungkan parent
dengan child-nya kecuali edge yang paling kiri.
2.
Tree-tree yang lain dihitung sebagai satu level
Contoh :
(1) (2)
(3) (4) (5)
BINARY TREE TRANSVERSAL
|
Adalah
proses menelusuri suatu Binary Tree sehingga sedemikian rupa setiap vertex
dikunjungi hanya 1 kali.
3
aktivitas dalam Binary tree Transversal :
(1) Visit the Root
(2) Transverse the left subtree
(3) Transverse the right subtree
Algoritma
dalam Binary Tree Transversal :
1. PRE-ORDER TRANSVERSAL
a. visit
the root
b. tranverse
the left subtree
c. tranverse
the right subtree
2. IN-ORDER TRANSVERSAL
a. tranverse
the left subtree
b. visit
the root
c. tranverse
the right subtree
3. POST-ORDER TRANSVERSAL
a. tranverse
the left subtree
b. tranverse
the right subtree
c. visit
the root
-
suatu Binary Search Tree dari himpunan N record (N1, N2, N3 . . . Nn)
-
adalah suatu Binary Tree yang setiap vertex-nya (sebut Ri) ditempati oleh Ni untuk i =
1,2,3 ... N.
Vertex-vertex
dari Binary Tree tsb. diatur sedemikian rupa sehingga untuk setiap Ri harus
memenuhi syarat sbb :
1. Jika Rj = left (Ri) maka Nj < Ni
2. Jika Rj = right (Ri) maka Nj > Ni
Contoh
:
Diketahui
key dari 7 record (K, M, L, N, P, O, Q)
Binary
Search Tree dari 7 key diatas dapat dibentuk :
Operasi-operasi
pada Binary Search Tree :
1. Direct Search
1. Direct Search
2. Sequential Search
3. Insert Search
4. Delete Search
ad.1.
DIRECT SEARCH
untuk
mencari vertex k dalam binary search tree dengan root=Ri ,
algoritmanya
adalah sbb :
1.
Jika tree kosong maka search tidak sukses
(k tidak ada dalam binary search tree)
2.
Jika k = Ni maka search sukses
3.
Jika k < Ni maka
subtree kiri dari Ri ditelusuri dan Ri = left
(Ri) kemudia kembali ke langkah 1.
4.
jika k > Ni maka subtree kanan dari Ri ditelusuri dan Ri=right
(Ri) kembali ke langkah 1.
Contoh
:
Carilah
Key M dalam Binary Tree berikut secara Direct Search.
Berapa
langkah/perbandingan yang dibutuhkan untuk mencari Key M.
Bandingkan
dengan rootnya, jika :
- lebih besar maka cari ke kanan
- lebih kecil maka cari ke kiri.
N,
K, M -- 3 kali perbandingan
M
: N -- M < N
M
: K -- M > K
M
: M
ad.2. SEQUENTIAL SEARCH
Algoritmanya
menggunakan langkah-langkah : IN-ORDER Transversal (Left Visit Right)
Contoh
:
Cari
key M dalam Binary Tree berikut secara sequential.
ad.3. INSERT SEARCH
Prinsipnya sama dengan DIRECT.
4 langkah : K > A
F
> A
D
> A
A
= A
ad.
4. DELETE SEARCH
dilihat dari Link -list-nya.
BALANCED TREE
|
Suatu
Binary Tree dimana untuk setiap Root Ri berlaku struktur subtree kiri = struktur
subtree kanan.
Contoh
:
HEIGHT BALANCED TREE
|
Suatu
Tree dimana untuk setiap Root Ri berlaku height dari subtree kanan dan height
dari subtree kiri beda paling banyak satu.
Contoh
:
Height balanced Tree Bukan
1 2 3
Height
Balanced tree belum tentu Balance Tree tapi Balance Tree sudah pasti height
balance tree.
Binary
tree yang Complete = Balance Tree
Balance
Tree belum tentu Binary Tree Complete :
Balance
Tree = Almost Complete :