在 Visual Basic 中编写二叉树的代码,当我尝试在类中寻址函数时,它总是给我一个错误(给出代码)

问题描述 投票:0回答:0

the error it gave


我写的代码:-

公共类 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

我只是通过插入函数添加了随机数来测试它,它应该以一定的顺序输出数字预购后的东西但它一直给我一个错误并且不会插入数字作为值节点(见附件)

vb.net binary-tree binary-search-tree
© www.soinside.com 2019 - 2024. All rights reserved.