0% found this document useful (0 votes)
10 views2 pages

Binary Tree With Linked List

Uploaded by

Phazha Masaka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views2 pages

Binary Tree With Linked List

Uploaded by

Phazha Masaka
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd

Imports System

Module Program
Structure Tree
Dim LeftPointer As Integer
Dim Item As String
Dim RightPointer As Integer
End Structure
Dim myTree(9) As Tree
Dim rootPointer As Integer = -1
Dim FreePointer As Integer = 0
Dim ItemCount As Integer = 0
Function TreeEmpty() As Boolean
If ItemCount = 0 Then
Return True
Else Return False
End If
End Function
Function TreeFull() As Boolean
If ItemCount = 10 Then
Return True
Else Return False
End If
End Function
Function Find(SearchItem As Integer) As Integer
Dim CurrentPosition As Integer = rootPointer
Do While myTree(CurrentPosition).Item <> SearchItem And CurrentPosition <>
-1
If SearchItem < myTree(CurrentPosition).Item Then
CurrentPosition = myTree(CurrentPosition).LeftPointer
Else
CurrentPosition = myTree(CurrentPosition).RightPointer
End If
Loop
Return CurrentPosition
End Function
Sub Insert(Data As Integer)
Dim CurrentPosition As Integer = rootPointer
If TreeFull() Then
Console.WriteLine("Tree is full")
Else
If TreeEmpty() Then
rootPointer = FreePointer
Else
'Update pointer of previous node to point to new branch
Do 'Traversing through the tree to find previous node
If Data < myTree(CurrentPosition).Item Then
If myTree(CurrentPosition).LeftPointer = -1 Then
myTree(CurrentPosition).LeftPointer = FreePointer
End If
CurrentPosition = myTree(CurrentPosition).LeftPointer
Else
If myTree(CurrentPosition).RightPointer = -1 Then
myTree(CurrentPosition).RightPointer = FreePointer
End If
CurrentPosition = myTree(CurrentPosition).RightPointer
End If
Loop Until CurrentPosition = FreePointer
End If
myTree(FreePointer).Item = Data
myTree(FreePointer).LeftPointer = -1
myTree(FreePointer).RightPointer = -1
ItemCount = ItemCount + 1
If ItemCount = 10 Then
FreePointer = -1
Else FreePointer = FreePointer + 1
End If
End If
End Sub
Sub Main()
Call Insert(2)
Call Insert(3)
Call Insert(1)
Console.WriteLine(Find(3))
End Sub
End Module

You might also like