# Insertion in binary search tree using recursion in vb.net

Vb program for Insertion in binary search tree using recursion. Here problem description and other solutions.

``````' Include namespace system
Imports System
'  Vb.net program for
'  Insertion in binary search tree by using recursion

Public Class TreeNode
Public  data As Integer
Public  left As TreeNode
Public  right As TreeNode
Public Sub New(ByVal data As Integer)
Me.data = data
Me.left = Nothing
Me.right = Nothing
End Sub
End Class

public Class BinarySearchTree
Public  root As TreeNode
Public Sub New()
Me.root = Nothing
End Sub
'  Insert a node element
Public Function  addNode(ByVal node As TreeNode,
ByVal data As Integer) As TreeNode
if (node IsNot Nothing) Then
if (node.data >= data) Then
'  When new element is smaller or
'  equal to current node
Else
'  When new element is higher to current node
End IF
'  important to manage root node
Return  node
Else
Return  New TreeNode(data)
End IF
End Function
'  Display preorder
Public Sub preorder(ByVal node As TreeNode)
if (node IsNot Nothing) Then
'  Display node value
Console.Write("  " + node.data.ToString())
'  Visit to left subtree
Me.preorder(node.left)
'  Visit to right subtree
Me.preorder(node.right)
End If
End Sub
Public Sub inorder(ByVal node As TreeNode)
if (node IsNot Nothing) Then
'  Visit to left subtree
Me.inorder(node.left)
'  Display node value
Console.Write("  " + node.data.ToString())
'  Visit to right subtree
Me.inorder(node.right)
End If
End Sub
Public Sub postorder(ByVal node As TreeNode)
if (node IsNot Nothing) Then
'  Visit to left subtree
Me.postorder(node.left)
'  Visit to right subtree
Me.postorder(node.right)
'  Display node value
Console.Write("  " + node.data.ToString())
End If
End Sub
Public Shared Sub Main(ByVal args As String())
Dim tree As BinarySearchTree = New BinarySearchTree()
'         10
'        / \
'       /   \
'      4     15
'     / \   /
'    3   5 12
'    -------------
'    Build binary search tree
'  Display tree nodes
Console.WriteLine("Preorder ")
tree.preorder(tree.root)
Console.WriteLine( vbLf &"Inorder ")
tree.inorder(tree.root)
Console.WriteLine( vbLf &"Postorder ")
tree.postorder(tree.root)
End Sub
End Class

``````

Output

``````Preorder
10  4  3  5  15  12
Inorder
3  4  5  10  12  15
Postorder
3  5  4  12  15  10``````

## Comment

Please share your knowledge to improve code and content standard. Also submit your doubts, and test case. We improve by your feedback. We will try to resolve your query as soon as possible.