Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. using System;
  2. using System.Collections;
  3.  
  4. // klasa pomocnicza Węzeł
  5. class Węzeł
  6. {
  7. public String wartość;
  8. public ArrayList dzieci;
  9. }
  10.  
  11. // klasa Drzewo
  12. class Drzewo
  13. {
  14. public Węzeł korzeń;
  15. }
  16.  
  17. class Program
  18. {
  19. static Węzeł UtwórzWęzeł( String wartość)
  20. {
  21. Węzeł węzeł = new Węzeł();
  22. węzeł.wartość = wartość;
  23. węzeł.dzieci = new ArrayList();
  24. return węzeł;
  25. }
  26.  
  27. static void InicjujWęzeł(Węzeł węzeł, String wartość)
  28. {
  29. węzeł.wartość = wartość;
  30. węzeł.dzieci = new ArrayList();
  31. }
  32.  
  33. static void DodajWęzeł(Węzeł węzeł, Węzeł dziecko)
  34. {
  35. węzeł.dzieci.Add(dziecko);
  36. }
  37.  
  38. // pre-order
  39. static void Wypisuj(Węzeł węzeł)
  40. {
  41. Console.Write("(" + węzeł.wartość);
  42. if (węzeł.dzieci.Count > 0)
  43. {
  44. for (int i = 0; i < węzeł.dzieci.Count; i++ )
  45. {
  46. Wypisuj((Węzeł)węzeł.dzieci[i]);
  47. }
  48. }
  49. Console.Write(")");
  50. }
  51.  
  52. // post-order
  53. static void WypisujPost(Węzeł węzeł)
  54. {
  55. // najpierw wypisujemy potomków
  56. if (węzeł.dzieci.Count > 0)
  57. {
  58. for (int i = 0; i < węzeł.dzieci.Count; i++)
  59. {
  60. WypisujPost((Węzeł)węzeł.dzieci[i]);
  61. }
  62. }
  63. // potem rodzica
  64. Console.Write(" " + węzeł.wartość);
  65. }
  66.  
  67.  
  68. static int Wysokość (Węzeł węzeł)
  69. {
  70. int wysokość = 0;
  71. for (int i = 0; i < węzeł.dzieci.Count; i++ )
  72. {
  73. Węzeł następnik = (Węzeł)węzeł.dzieci[i];
  74. wysokość = Math.Max(wysokość, Wysokość(następnik) + 1);
  75. }
  76. return wysokość;
  77. }// Zwraca wynik
  78.  
  79.  
  80. static void Main()
  81. {
  82. Drzewo drzewo = new Drzewo();
  83.  
  84. drzewo.korzeń = UtwórzWęzeł("F");
  85. Węzeł wB = UtwórzWęzeł("B");
  86. Węzeł wA = UtwórzWęzeł("A");
  87. Węzeł wC = UtwórzWęzeł("C");
  88. Węzeł wD = UtwórzWęzeł("D");
  89. Węzeł wE = UtwórzWęzeł("E");
  90. Węzeł wG = UtwórzWęzeł("G");
  91. Węzeł wH = UtwórzWęzeł("H");
  92. Węzeł wI = UtwórzWęzeł("I");
  93.  
  94. DodajWęzeł(wD, wC);
  95. DodajWęzeł(wD, wE);
  96. DodajWęzeł(wB, wA);
  97. DodajWęzeł(wB, wD);
  98.  
  99. DodajWęzeł(wI, wH);
  100. DodajWęzeł(wG, wI);
  101.  
  102. DodajWęzeł(drzewo.korzeń, wB);
  103. DodajWęzeł(drzewo.korzeń, wG);
  104.  
  105. Wypisuj(drzewo.korzeń);
  106. Console.WriteLine();
  107. WypisujPost(drzewo.korzeń);
  108. Console.WriteLine();
  109. Console.WriteLine("wysokość = " + Wysokość(drzewo.korzeń));
  110.  
  111. Console.ReadKey();
  112. }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement