* Struktur pohon:
-
Pohon
statik: berisi node tetap
-
Pohon
dinamik: berisi node yang berubah-ubah
* Node root adalah node yang paling
atas dan memiliki anak. Sedangkan node dibawah root merupakan subtree.
* Istilah-istilah dalam pohon biner:
-
Predecessor : Node yang ada diatas node tertentu.
-
Successor : Node yang ada dibawah node tertentu.
-
Descendant : Seluruh node yang terletak setelah node
tertentu pada jalur yang sama.
-
Parent : Predecessor satu level diatas
suatu node.
-
Child : Successor satu level diatas
suatu node.
-
Sibling : Node-node yang memiliki parent
yang sama.
-
Subtree : Suatu node beserta descendant.
-
Size : Banyak node dalam tree.
-
High : Banyak tingkatan dalam tree.
-
Root : Node khusus yang tidak
memiliki predecessor.
-
Leaf : Node dalam tree yang tidak
memiliki successor.
-
Degree : Banyaknya child didalam suatu
node.
Contoh:
Dari gambar diatas dapat diketahui
bahwa:
Ancestor dari F adalah C dan A
Descendant dari C adalah F dan G
Parent dari D adalah B
Child dari A adalah B dan C
Height/tinggi pohon adalah 3
Root pohon adalah A
Leaf pohon adalah D, E, F, G
Degree C adalah 2
* Langkah-langkah membentuk pohon biner
dari notasi infix:
1. Tentukan valensi,
2. Ambil semua karakter dari string yang
berisi notasi Infix dan tes karakter tersebut,
3. Jika ada kurung buka, maka push
karakter ini kedalam tumpukan operator.
4. Jika ada operand, push karakter ini
kedalam tunpukan operand.
5. Jika kurung tutup, pop 2 buah elemen
dari tumpukan operand (elemen pertama menempati cabang kanan dan elemen kedua
menempati cabang kiri) dan pop sebuah elemen dari tumpukan operator (dipasang
sebagai akar). Gabung elemen-elemen ini sehingga membentuk sebuah pohon biner
dan push kembali operator tersebut kedalam tumpukan operand. Langkah ini
diulang sampai elemen teratas tumpukan operator berisi ‘(‘. Pop juga elemen
ini, tetapi tidak perlu diapa-apakan.
6. Jika operator, maka perlu
dibandingkan valensi operator tersebut dengan valensi elemen teratas dari
tumpukan operator.
7. Jika tumpukan operator tersebut lebih
kecil atau sama dengan valensi teratas dari tumpukan operator dan tumpukan
operator tidak kosong, maka lakukan langkah-langkah seperti nomor 5.
8. Jika valensi operator itu lebih besar
atau tumpukan kosong, push operator tersebut kedalam tumpukan operator.