Introduction to Tree, Binary Tree And Expression Tree
Tree
Tree adalah kumpulan-kumpulan dari suatu nodes, bisa berupa data.
Sebagai contoh mudah tree adalah Pohon keluarga.
- Node yang paling atas adalah root.
- Garis yang menghubungkan node-node adalah edge.
- Node yang tidak memiliki children disebut leaf.
- Degree adalah total atau jumlah dari subnode.
- Height/Depth adalah maksimal degree.
- Degree dari Tree adalah 3
- Degree dari C adalah 2
- Height adalah 3
- Parent dari C adalah A
- Children dari A adalah B,C,D (E,F,G bukan Children A, tetapi termasuk Descendant)
- Sibling dari F adalah G (E tidak memiliki Sibling karena B hanya memiliki 1 Children)
- Ancestor dari F adalah A,C (Ancestor adalah leluhur, jadi bukan hanya C tetapi A juga leluhur dari F)
- Descendant dari C adalah F,G (E bukan Descendant dari C karena C tidak terhubung oleh B)
Binary Tree
Binary artinya 2, jadi dalam Binary Tree setiap nodenya memiliki paling banyak 2 Children. Children tersebut biasa dibagi menjadi Left Child dan Right Child. Node yang tidak memiliki Child disebut leaf.
Banyak tipe-tipe dari Binary Tree yaitu : Perfect Binary Tree, Complete Binary Tree, Skewed Binary Tree, dan Balanced Binary Tree.
- Perfect Binary Tree adalah Binary Tree yang mana setiap tingkatnya memiliki kedalaman yang sama.
- Complete Binary Tree adalah Binary Tree yang mana setiap tingkat, kecuali yang paling terakhir terisi penuh.
- Skewed Binary Tree adalah Binary Tree yang mana setidaknya memiliki 1 Child.
- Balanced Binary Tree adalah Binary Tree yang mana tidak ada leaf yang jauh lebih jauh dari root daripada leaf lainnya.
Expression Binary Tree
adalah Binary Tree yang mana treenya merupakan dari suatu kesatuan ekspresi dari suatu proses matematika yang dapat berupa Postfix, Infix, dan Prefix.
Prefix : * + a b / - c d e
Postfix : a b + c d - e / *
Infix : (a + b) * ((c - d) / e)