我写的代码:-
公共类 TreeNode 公共价值作为整数 公共离开作为 TreeNode 公权作为 TreeNode
Public Sub New(val As Integer)
Me.value = val
Me.left = Nothing
Me.right = Nothing
End Sub
End Class
Public Class binaryTree
Public root As TreeNode
Public Sub New()
Me.root = Nothing
End Sub
Public Sub insert(val As Integer)
Dim newNode As TreeNode()
If Me.root Is Nothing Then
Me.root = newNode(val)
Else
Dim current As TreeNode = Me.root
While True
If val < current.value Then
If current.left Is Nothing Then
current.left = newNode(val)
Exit While
Else
current = current.left
End If
Else
If current.right Is Nothing Then
current.right = newNode(val)
Exit While
Else
current = current.right
End If
End If
End While
End If
End Sub
Public Sub InorderTraversal(node As TreeNode)
If node Is Nothing Then
Return
End If
InorderTraversal(node.left)
Console.Write(node.value & ", ")
InorderTraversal(node.right)
End Sub
Public Sub PostOrderTraversal(node As TreeNode)
If node Is Nothing Then
Return
End If
PostOrderTraversal(node.left)
PostOrderTraversal(node.left)
Console.Write(node.value & ", ")
End Sub
Public Sub PreOrderTraversal(node As TreeNode)
If node Is Nothing Then
Return
End If
Console.Write(node.value & ", ")
PreOrderTraversal(node.left)
PreOrderTraversal(node.right)
End Sub
End Class
Sub Main(args As String())
Dim tree As binaryTree
tree.insert(5)
tree.insert(3)
tree.insert(7)
tree.insert(1)
tree.insert(4)
tree.insert(6)
tree.insert(8)
Console.WriteLine("in-order traversal")
tree.InorderTraversal(tree.root)
Console.WriteLine()
Console.WriteLine("post-order traversal")
tree.PostOrderTraversal(tree.root)
Console.WriteLine()
Console.WriteLine("pre-order traversal")
tree.PreOrderTraversal(tree.root)
Console.WriteLine()
End Sub
我只是通过插入函数添加了随机数来测试它,它应该以一定的顺序输出数字预购后的东西但它一直给我一个错误并且不会插入数字作为值节点(见附件)