Binary Search Tree Traversal

In this tutorial we will learn about Binary Search Tree Traversal with examples. We have a Binary Search Tree which is following.

Binary Search Tree Traversal Methods

There are various methods to traverse the binary search tree. Following are the basic methods used to Traverse the Binary Search Tree.

• Inorder Traversal
• Preorder Traversal
• Postorder Traversal

1. Inorder Traversal

Explanation:

• Traverse the left subtree.
• Visit the root node.
• Traverse the right subtree.

Recursion is the best and simple way to traverse over the binary search tree. Everything you should know about the Recursion to traverse the BST in best way.

Code

``````
public class BinaryTreeBT {

static class Node {
int data;
Node left;
Node right;

Node(int data) {
this.data = data;
this.left = null;
this.right = null;
}
}

// creating binary search tree
public static Node createBST(Node root, int val) {
if (root == null) {
root = new Node(val);
return root;
}

if (root.data > val) {
root.left = createBST(root.left, val);
} else {
root.right = createBST(root.right, val);
}

return root;
}

// traverse the bst inorder
static void inorder(Node root) {
if (root == null) {
return;
}
inorder(root.left);
System.out.print(root.data + " ");
inorder(root.right);

}

public static void main(String[] args) {
int[] values = {12, 8, 10, 1, 3, 4, 6, 9, 15};
Node root = null;
for(int i=0; i<values.length; i++){
root = createBST(root, values[i]);
}

// traverse over the bst
inorder(root);
System.out.println("");

}
}
``````

Answer: 1 3 4 6 8 9 10 12 15

2. Preorder Traversal of Binary Search Tree

Explanation:

• Visit the root.
• Traverse the left subtree.
• Traverse the right subtree.
``````
public class BinaryTreeBT {

static class Node {
int data;
Node left;
Node right;

Node(int data) {
this.data = data;
this.left = null;
this.right = null;
}
}

// creating binary search tree
public static Node createBST(Node root, int val) {
if (root == null) {
root = new Node(val);
return root;
}

if (root.data > val) {
root.left = createBST(root.left, val);
} else {
root.right = createBST(root.right, val);
}

return root;
}

// traverse the bst preorder
static void preorder(Node root) {
if (root == null) {
return;
}

System.out.print(root.data + " ");
preorder(root.left);
preorder(root.right);

}

public static void main(String[] args) {
int[] values = {12, 8, 10, 1, 3, 4, 6, 9, 15};
Node root = null;
for(int i=0; i<values.length; i++){
root = createBST(root, values[i]);
}

// traverse over the bst
preorder(root);
System.out.println("");

}
}
``````

Answer: 12 8 1 3 4 6 10 9 15

3. Postorder Traversal of BST

Explanation:

• Traverse the left subtree.
• Traverse the right subtree.
• Visit the root node.
``````
public class BinaryTreeBT {

static class Node {
int data;
Node left;
Node right;

Node(int data) {
this.data = data;
this.left = null;
this.right = null;
}
}

// creating binary search tree
public static Node createBST(Node root, int val) {
if (root == null) {
root = new Node(val);
return root;
}

if (root.data > val) {
root.left = createBST(root.left, val);
} else {
root.right = createBST(root.right, val);
}

return root;
}

// traverse the bst postorder
static void postorder(Node root) {
if (root == null) {
return;
}

postorder(root.left);
postorder(root.right);
System.out.print(root.data + " ");

}

public static void main(String[] args) {
int[] values = {12, 8, 10, 1, 3, 4, 6, 9, 15};
Node root = null;
for(int i=0; i<values.length; i++){
root = createBST(root, values[i]);
}

// traverse over the bst
postorder(root);
System.out.println("");

}
}
``````

Answer: 6 4 3 1 9 10 8 15 12

Thank you for reaching out this tutorial. You can comment in the comments section below for any doubt or query. If you like this tutorial please comment.

Free Blog post

You can post your content here Free.