Algoritma dan Struktur Data
Resmi
Praktikum Binary Tree
-
Praditya Nafiis Muhammad
2 D3 IT B
2103181032
Yuliana Setyowati
28 November 2019
A. Listing Program
TNode.java
public class TNode<T> {
public T nodeValue;
public TNode<T> left, right;
public TNode(T item)
{
nodeValue = item;
left = right = null;
}
public TNode (T item, TNode<T> left, TNode<T> right)
{
nodeValue = item;
this.left = left;
this.right = right;
}
}
BinaryTree.java
public class BinaryTree<T> {
public static TNode<Character> buildTree() {
TNode<Character> a, b, c, d, kali, plus, bagi;
a = new TNode<Character>('A');
b = new TNode<Character>('B');
c = new TNode<Character>('C');
d = new TNode<Character>('D');
plus = new TNode<Character>('+', a, b);
kali = new TNode<Character>('*', plus, c);
bagi = new TNode<Character>('/', kali, d);
return bagi;
}
public static TNode<Character> buildTree2() {
TNode<Character> a, b, c, d, e,f,g;
d = new TNode<Character>('D');
c = new TNode<Character>('C');
g = new TNode<Character>('G');
e = new TNode<Character>('E', d, null);
b = new TNode<Character>('B', c, e);
f = new TNode<Character>('F', null, g);
a = new TNode<Character>('A', b, f);
return a;
}
public static <T> int height(TNode<T> t) {
int heightLeft = 0, heightRight = 0, heightval = 0;
if (t == null) // tinggi dari tree kosong adalah -1
{
heightval = -1;
} else {
heightLeft = height(t.left);
heightRight = height(t.right);
heightval = 1 + (heightLeft > heightRight ? heightLeft : heightRight);
}
return heightval;
}
public static <T> String preorderDisplay(TNode<T> t) {
String s = "";
if (t != null) {
s += t.nodeValue + " "; // display the node
s += preorderDisplay(t.left); // descend left
s += preorderDisplay(t.right); // descend right
}
return s;
}
}
Main.java
package percobaan1;
public class Main2 {
public static void main(String[] args) {
System.out.println("Notasi Aritmatika");
TNode<Character> root1 = BinaryTree.buildTree4();
System.out.println("Preorder = " + BinaryTree.postorderDisplay(root1));
System.out.println("Height = " + BinaryTree.height(root1));
System.out.println("\nNotasi Huruf");
TNode<Character> root2 = BinaryTree.buildTree();
System.out.println("Preorder = " + BinaryTree.postorderDisplay(root2));
System.out.println("Height = " + BinaryTree.height(root2));
}
}
B. Output Program