Как правильно расставить метки высот вершин? - C#

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

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

Мне нужно каждой высоте поставить в соответствии два числа(1- высота левого поддерева, 2 - высота правого) Написал код, но он не всегда расставляет правильно
Листинг программы
  1. /*private int Height(Item p)
  2. {
  3. if (p == null)
  4. return 0;
  5. int left, right;
  6. if (p.lSon != null)
  7. left = Height(p.lSon);
  8. else
  9. left = -1;
  10. if (p.rSon != null)
  11. right = Height(p.rSon);
  12. else
  13. right = -1;
  14. int max = left > right ? left : right;
  15. return max +1;
  16. }*/
  17. private int FindLeftHeight(Item p)
  18. {
  19. int left;
  20. if (p == null)
  21. return 0;
  22. if (p.lSon != null)
  23. left = FindLeftHeight(p.lSon);
  24. else
  25. left = -1;
  26. return left + 1;
  27. }
  28. private int FindRightHeight(Item p)
  29. {
  30. int right;
  31. if (p == null)
  32. return 0;
  33. if (p.rSon != null)
  34. right = FindRightHeight(p.rSon);
  35. else
  36. right = -1;
  37. return right + 1;
  38. }

Решение задачи: «Как правильно расставить метки высот вершин?»

textual
Листинг программы
  1. public class NodeTree
  2. {
  3.    public float ValueReal {set; get;}
  4.    public int IDnode {set; get;}
  5.  
  6.    public NodeTree Lnode { set; get; }
  7.    public NodeTree Rnode { set; get; }
  8.  
  9.  
  10.    public NodeTree(float valueReal)
  11.    {
  12.          ValueReal = valueReal;
  13.          IDnode = 0;
  14.    }
  15. }
  16.  
  17. public void F(NodeTree node)
  18. {
  19.     if (node == null) { return; }
  20.  
  21.     var Lval = node.Lnode != null ? 1 : 0;
  22.     var Rval = node.Rnode != null ? 1 : 0;
  23.  
  24. }

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


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

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

7   голосов , оценка 3.286 из 5

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

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

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