BAB Vill
Binary Tree Traversals
binary tree traversal adalah Proses mengunjungi node tepat satu
kali dan tiap node hanya boleh memiliki maksimal 2 subtree yang disebut
sebagai sub pohon kiri (left subtree) dan sub pohon kanan (right subtree).
1, Postorder
Dilaksanakan dengan jalan melakukan kunjungan ke subtree kiri, lalu
ke subtree kanan, dan selanjutnya mencetak isi node yang dikunjungi
Catatan : menggunakan 2 class,
Ex program
class Node
{
int key;
Node left, right;
public Node(int item)
{
key = item;
left = right = null;
}
class BinaryTree
{
1/ Root of Binary Tree
Node root;
BinaryTree()
wruktur Dataroot = null;
/ Given a binary tree, print its nodes according to the
“pottom-up" postorder traversal. */
void printPostorder(Node node)
{
if (node == null)
retum;
II first recur on left subtree
printPostorder(node.left);
//then recur on right subtree
printPostorder(node. right);
// now deal with the node
System.out.print(node.key +"");
}
/I Wrappers over above recursive functions
void printPostorder() { — printPostorder(root); }
public static void main(String[] args)
{
BinaryTree tree = new BinaryTree();
tree.root = new Node(1);
tree.root.left = new Node(2);tree.root right = new Node(a):
tree root left left = new Node(4);
tree.root.left.right = new Node(5);
System.out.printin("\nPostorder traversal of binary tree is ");
tree.printPostorder();
2. Inorder
Dilaksanakan dengan jalan melakukan kunjungan ke subtree kiri,
mencetak isi node yang dikunjungi, lalu melakukan kunjungan ke subtree
kanan.
Catatan : menggunakan 2 class.
Ex program :
class Node
{
int key;
Node left, right;
public Node(int item)
it
key = item;
left = right = null;
}
class BinaryTree
{
/! Root of Binary Tree
Stuktur Data
aNode root;
BinaryTree()
{
root = null;
}
Given a binary tree, print its nodes in inorder*/
void printInorder(Node node)
{
if (node == null)
return;
/* first recur on left child */
printInorder(node. left);
/* then print the data of node */
System.out.print(node.key +");
/* now recur on right child *
printinorder(node.right);
}
void printinorder() { — printinorder(root); }
1 Driver method
public static void main(String[] args)
{
BinaryTree tree = new BinaryTree();
tree.root = new Node(1);
Suku Datatree.root left = new Node(2);
tree.root.right = new Node(3);
tree. root.left.left = new Node(4);
tree.root.left.right = new Node(5);
‘System.out.printin(\ninorder traversal of binary tree is ");
tree. printInorder();
3. Preorder
Dilaksanakan dengan jalan mencetak isi node yang dikunjungi lalu
melakukan kunjungan ke subtree kiri dan selanjutnya ke subtree kanan
Catatan : menggunakan 2 class
Ex program :
class Node
{
int key;
Node left, right;
Public Node(int item)
{
key = item;
left = right = null;
class BinaryTree
{
Ktur Data11 Root of Binary Tree
Node root;
BinaryTree()
{
root = null;
}
I" Given a binary tree, print its nodes in preorder"!
void printPreorder(Node node)
/* first print data of node */
System.out.print(node.key +");
/* then recur on left sutree */
printPreorder(node left);
/* now recur on right subtree */
printPreorder(node.right);
}
void printPreorder() { _ printPreorder(root); }
1 Driver method
public static void main(Stringl] args)
{
BinaryTree tree = new BinaryTree();
ktur DataStruktup Data
tree.root = new Node(1);
tree.root.left = new Node(2);
tree.root.right = new Node(3);
tree.root.left.left = new Node(4);
tree. root left right = new Node(5);
System.out.printin("Preorder traversal of binary tree is"),
tree. printPreorder();