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

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

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

Есть код, Помогите найти ошибку.
Листинг программы
  1. using System;
  2. namespace BinarySearchTree
  3. {
  4. public class Node
  5. {
  6. public int value;
  7. public Node left;
  8. public Node right;
  9. public void ShowNode()
  10. {
  11. Console.Write(value + " ");
  12. }
  13. }
  14. public class BST
  15. {
  16. public Node root;
  17. public BST()
  18. {
  19. root = null;
  20. }
  21. public void Insert(int i)
  22. {
  23. Node newNode = new Node();
  24. newNode.value = i;
  25. if (root == null)
  26. root = newNode;
  27. else
  28. {
  29. Node current = root;
  30. Node parent;
  31. while (true)
  32. {
  33. parent = current;
  34. if (i < current.value)
  35. {
  36. current = current.left;
  37. if (current == null)
  38. {
  39. parent.left = newNode;
  40. break;
  41. }
  42. else
  43. {
  44. current = current.right;
  45. if (current == null)
  46. {
  47. parent.right = newNode;
  48. break;
  49. }
  50. }
  51. }
  52. }
  53. }
  54. }
  55. public void Walk (Node theRoot)
  56. {
  57. if (!(theRoot == null))
  58. {
  59. Walk (theRoot.left);
  60. theRoot.ShowNode();
  61. Walk (theRoot.right);
  62. }
  63. }
  64. }
  65. class Program
  66. {
  67. static void Main(string[] args)
  68. {
  69. BST data = new BST();
  70. string[] str = Console.ReadLine().Split(' ');
  71. foreach (string s in str)
  72. data.Insert(int.Parse(s));
  73. Console.WriteLine("Обход дерева: ");
  74. data.Walk(data.root);
  75. }
  76. }
  77. }
В общем ошибка кроется где-то в методе Insert. Метод работает только для первого вставляемого узла (не считая корневого.

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

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

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


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

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

12   голосов , оценка 4.167 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы