Member 13285861 Ответов: 1

Как мне реализовать нижеследующее


https://www.testdome.com/questions/c-sharp/binary-search-tree/9707?questionIds=9707,9904&generatorId=21&type=fromtest&testDifficulty=Easy

Что я уже пробовал:

я пытался

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;

public class Node
{
    public int Value { get; set; }                      // Value of {node} == integer (1,2,3,4,5)
    public Node Left { get; set; }                      // Reference to left node (n1, n2, n3) == Node.
    public Node Right { get; set; }                     // Reference to right node (n1, n2, n3) == Node.
    public Node(int value, Node left, Node right)       
    {
        Value = value;                                  // (int)
        Left = left;                                    // (node)
        Right = right;                                  // (node)
    }
}

public class BinarySearchTree
{
    public static bool IsValidBST(Node root)
    {
        if (root.Left == null && root.Right == null)
            return true;

        else if (root.Left == null)
        {
            // Checking root.Right.Value
            if (root.Value <= root.Right.Value)
                return true;

            else
                return false;
        }
        else if (root.Right == null)
        {
            // Checking root.Left.Value
            if (root.Value > root.Left.Value)
                return true;
            else
                return false; 
        }
        else
        {
            // Checking both Values
            if (root.Value > root.Left.Value && root.Value <= root.Right.Value)
                return true;
            else
                return false;
        }
    }


    public static void Main(string[] args)
    {
        Node n1 = new Node(1, null, null);
        Node n3 = new Node(3, null, null);
        Node n2 = new Node(2, n1, n3);

        // Execute function and write it to the console
        Console.WriteLine(IsValidBST(n5n2));
        Console.ReadLine();
    }
}

Abhipal Singh

Мы здесь не для того, чтобы исправлять ваши ошибки.

Отладьте самостоятельно и разберитесь.

1 Ответов

Рейтинг:
2

Patrice T

Если вам просто нужен код, то в интернете его полно.
Если у вас есть проблема с этим кодом, вы забыли указать проблему.

Существует инструмент, который позволяет вам видеть, что делает ваш код, его имя отладчик Это также отличный инструмент обучения, потому что он показывает вам реальность, и вы можете увидеть, какие ожидания соответствуют реальности.
Когда вы не понимаете, что делает ваш код или почему он делает то, что делает, ответ таков: отладчик.
Используйте отладчик, чтобы увидеть, что делает ваш код. Просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик-Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010-YouTube[^]
Отладка кода C# в Visual Studio-YouTube[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.