Возврат двоичного дерева в var - PullRequest
0 голосов
/ 11 июня 2019

У меня есть упражнение, над которым я работаю, использую двоичные деревья, где есть две функции, которые вы используете, и они выглядят следующим образом:

class Program
{
    public Node root;
    static void Main(string[] args)
    {
        //build and return tree
        var b = binaryTree();

        //get sum of tree
        var x = binaryTreeSum(b);
        //Console.WriteLine("Sum of the binary tree is " + x);

    }

Я получаю сообщение об ошибке var b = binaryTreeSum(b) ссылка на объект требуется для нестатического поля, метода или свойства. Я пытался создать свое дерево в следующей функции:

    public Program binaryTree()
    {
        //build tree
        Program tree = new Program();

        tree.root = new Node(10);
        tree.root.left = new Node(5);
        tree.root.right = new Node(11);
        tree.root.left.left = new Node(2);
        tree.root.left.right = new Node(1);
        tree.root.right.left = new Node(5);
        tree.root.right.right = new Node(123);

       return tree;
    }

Есть ли способ вернуть мои tree.root или tree на var b? Я знаю, что могу использовать tree.root, чтобы получить сумму в следующей функции, что я и пытаюсь сделать. Я могу начать с этого все неправильно, но мне нужно использовать эти две функции и вернуться к var

1 Ответ

0 голосов
/ 11 июня 2019

Я думаю, вы просто хотите return tree; В соответствии с сигнатурой вашего метода, вы хотите вернуть BinaryTree объект, но в настоящее время вы пытаетесь вернуть Node.

Поскольку я не уверен, откуда появились эти объекты (вы их создали?), Я предполагаю, что один не является производным от другого.

Возврат из вашей функции binaryTree()будет автоматически назначен на var a

...