Дерево двоичного поиска. Найти высоту узла - C#
Формулировка задачи:
public class BinaryTree { public class Node { public object inf; //информационное поле public Node left; //ссылка на левое поддерево public Node rigth; //ссылка на правое поддерево //конструктор вложенного класса, создает узел дерева public Node(object nodeInf) { inf = nodeInf; left = null; rigth = null; } //добавляет узел в дерево так, чтобы дерево оставалось деревом бинарного поиска public static void Add(ref Node r, object nodeInf) { if (r == null) { r = new Node(nodeInf); } else { if (((IComparable)(r.inf)).CompareTo(nodeInf) > 0) { Add(ref r.left, nodeInf); } else { Add(ref r.rigth, nodeInf); } } } public static void Preorder(Node r) //прямой обход дерева { if (r != null) { Console.Write("{0} ", r.inf); Preorder(r.left); Preorder(r.rigth); } } public int getNodeHeight(Node root, Node x, int height)//вот вроде что-то подобное { if (root == null) return 0; if (root == x) return height; int level = getNodeHeight(root.left, x, height + 1); if (level != 0) return level; return getNodeHeight(root.rigth, x, height + 1); } } Node tree; //ссылка на корень дерева //свойство позволяет получить доступ к значению информационного поля корня дерева public object Inf { set { tree.inf = value; } get { return tree.inf; } } public BinaryTree() { tree = null; } private BinaryTree(Node r) { tree = r; } public void Add(object nodeInf) //добавление узла в дерево { Node.Add(ref tree, nodeInf); } public void GetHeight() //не знаю,как тут реализовать { Node tr1 = new Node(Console.ReadLine()); } public void Preorder() { Node.Preorder(tree); } }
Кто-нибудь....хелп
Решение задачи: «Дерево двоичного поиска. Найти высоту узла»
textual
Листинг программы
public int getNodeHeight() { int leftHeight = this.left == null ? 0 : this.left.getNodeHeight(); int rightHeight = this.right == null ? 0 : this.right.getNodeHeight(); return 1 + Math.Max(leftNodeHeight, rightNodeHeight); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д