Dim leftpointer As Integer
Dim rightpointer As Integer
Dim prevpointer As Integer
Public Const nullpointer As Integer = -1
pointer.current = pointer.root
tree(pointer.current).value = rng.Next(1, 10)
tree(pointer.current).leftpointer = nullpointer
tree(pointer.current).rightpointer = nullpointer
tree(pointer.current).prevpointer = nullpointer
additem(tree, pointer.current, pointer.free, pointer.root, num)
Dim valueoutput As String
Dim rightoutput As String
Console.WriteLine("List printed as array:")
Console.WriteLine("RAM | Val | Left | Right | Prev")
valueoutput = tree(i).value
leftoutput = tree(i).leftpointer
rightoutput = tree(i).rightpointer
prevoutput = tree(i).prevpointer
If valueoutput.Length = 1 Then
valueoutput = "0" & valueoutput
If leftoutput.Length = 1 Then
leftoutput = "0" & leftoutput
If rightoutput.Length = 1 Then
rightoutput = "0" & rightoutput
If prevoutput.Length = 1 Then
prevoutput = "0" & prevoutput
Console.WriteLine("0{0} | {1} | {2} | {3} | {4}", i, valueoutput, leftoutput, rightoutput, prevoutput)
Console.WriteLine("List printed as binary tree:")
print(tree, pointer.current, pointer.root)
Public Sub print(tree() As BinTree, ByRef current As Integer, root As Integer)
Dim branch As String = "left"
Dim direction As String = "down"
If tree(root).leftpointer = nullpointer Then
Console.WriteLine(tree(root).value)
Do Until current = root And branch = "right" And direction = "up"
current = tree(current).leftpointer
current = tree(current).rightpointer
current = tree(current).prevpointer
Case tree(current).leftpointer
Case tree(current).rightpointer
If tree(current).leftpointer = nullpointer Then
Console.WriteLine(tree(current).value)
If tree(current).rightpointer = nullpointer And tree(current).leftpointer = nullpointer Then
If current = tree(prevpath).leftpointer Then
If branch = "left" And tree(current).rightpointer <> nullpointer Then
Console.WriteLine(tree(current).value)
If tree(current).leftpointer <> nullpointer And tree(current).rightpointer = nullpointer Then
Console.WriteLine(tree(current).value)
If tree(current).rightpointer = nullpointer And current = root Then
Public Sub additem(tree() As BinTree, ByRef current As Integer, ByRef free As Integer, root As Integer, num As Integer)
Case < tree(current).value
current = tree(current).leftpointer
Case >= tree(current).value
current = tree(current).rightpointer
Loop Until current = nullpointer
tree(prev).leftpointer = free
tree(prev).rightpointer = free
tree(free).leftpointer = nullpointer
tree(free).rightpointer = nullpointer
tree(free).prevpointer = prev
Public Sub checkforfree(tree() As BinTree, ByRef free As Integer)
If tree(i).value = 0 Then