Реализация бинарного дерева поиска - C#

Узнай цену своей работы

Формулировка задачи:

Есть код, Помогите найти ошибку.
using System;
 
namespace BinarySearchTree
{
    public class Node
    {
        public int value;
        public Node left;
        public Node right;
        public void ShowNode()
        {
            Console.Write(value + " ");
        }
    }
 
    public class BST
    {
        public Node root;
        public BST()
        {
            root = null;
        }
 
        public void Insert(int i)
        {
            Node newNode = new Node();
            newNode.value = i;
            if (root == null)
                root = newNode;
            else
            {
                Node current = root;
                Node parent;
                while (true)
                {
                    parent = current;
                    if (i < current.value)
                    {
                        current = current.left;
                        if (current == null)
                        {
                            parent.left = newNode;
                            break;
                        }
                        else
                        {
                            current = current.right;
                            if (current == null)
                            {
                                parent.right = newNode;
                                break;
                            }
                        }
                    }
                }
            }
        }
        public void Walk (Node theRoot)
        {
            if (!(theRoot == null))
            {
                Walk (theRoot.left);
                theRoot.ShowNode();
                Walk (theRoot.right);
            }
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            BST data = new BST();
            string[] str = Console.ReadLine().Split(' ');
            foreach (string s in str)
                data.Insert(int.Parse(s));
            Console.WriteLine("Обход дерева: ");
            data.Walk(data.root);
        }
    }
}
В общем ошибка кроется где-то в методе Insert. Метод работает только для первого вставляемого узла (не считая корневого.

Решение задачи: «Реализация бинарного дерева поиска»

textual
Листинг программы
                    if (i < current.value)
                    {

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы