Реализация бинарного дерева поиска - 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)
- {
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д