Advertisement
Guest User

Tree

a guest
Oct 21st, 2018
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.19 KB | None | 0 0
  1. class Arbore
  2. {
  3. private final int capacitateArbore = 100; // capacitatea arborelui
  4. public int indparinte[] = new int[capacitateArbore];
  5. public int valchei[] = new int[capacitateArbore];
  6. public int contor = 0; // numarul de noduri existente, adica introduse in arbore
  7.  
  8. public Arbore()
  9. {
  10. System.out.println("Initializam vectorii cu -1 pentru un arbore de 100 de noduri.");
  11. for (int i = 0;i < capacitateArbore;i++)
  12. {
  13. indparinte[i] = -1;
  14. valchei[i] = -1;
  15. }
  16. }
  17.  
  18. void search(int cheie)
  19. {
  20. boolean found = false;
  21. for(int i = 0;i < capacitateArbore;i++)
  22. {
  23. if(valchei[i] == cheie)
  24. {
  25. found = true;
  26. System.out.println("Elementul "+cheie+" se afla in arbore.");
  27. break;
  28. }
  29. }
  30. if(!found)
  31. {
  32. System.out.println("Elementul "+cheie+" NU se afla in arbore.");
  33. }
  34. }
  35.  
  36. int add(int cheie,int indiceParinte)
  37. {
  38. // Adaug radacina la indexul 0
  39. if(indiceParinte == 0 && contor == 0)
  40. {
  41. indparinte[0] = -1;
  42. valchei[0] = cheie;
  43. contor++;
  44. System.out.println("Am adaugat radacina cu cheia " + cheie );
  45. return -1;
  46. }
  47. // Pentru celelalte noduri adaug normal
  48. for (int i = 1; i < capacitateArbore; i++)
  49. {
  50. if (valchei[i] == cheie)
  51. {
  52. System.out.println("Cheia " + cheie + " exista deja in arbore.");
  53. return -1;
  54. }
  55. if (i == contor)
  56. {
  57. indparinte[i] = indiceParinte;
  58. valchei[i] = cheie;
  59. System.out.println("Am adaugat cheia " + cheie + " la parintele " + indiceParinte);
  60. contor++;
  61. return indiceParinte;
  62. }
  63. }
  64. return -1;
  65. }
  66.  
  67. void delete(int cheie)
  68. {
  69. boolean search = false;
  70. for(int i = 0;i < capacitateArbore;i++)
  71. {
  72. if(valchei[i] == cheie)
  73. {
  74. search = true;
  75. for(int j = 0;j < capacitateArbore;j++)
  76. {
  77. if(indparinte[i] == j)
  78. {
  79. // Stergem toate 'crengile' ce atarna
  80. delete(j);
  81. valchei[j] = -1;
  82. indparinte[j] = -1;
  83. contor--;
  84. }
  85. }
  86. // Stergem si nodu curent
  87. valchei[i] = -1;
  88. indparinte[i] = -1;
  89. contor--;
  90. break;
  91. }
  92. }
  93. if(!search)
  94. {
  95. System.out.println("Elementul "+cheie+" nu a fost gasit in arbore.");
  96. }else{
  97. System.out.println("Elementul "+cheie+ " a fost sters.");
  98. }
  99. }
  100.  
  101. // Parcurge
  102. void printTree()
  103. {
  104. System.out.println("Radacina este : "+valchei[0]);
  105. for(int i = 1;i < capacitateArbore;i++)
  106. {
  107. if(valchei[i] != -1)
  108. {
  109. System.out.println("Nodul "+i+" are cheia cu valoare "+valchei[i]+" si are ca parinte pe "+indparinte[i]);
  110. }
  111. }
  112. }
  113.  
  114. public static void main(String args[])
  115. {
  116. Arbore arb = new Arbore();
  117. System.out.println("Program Arbore Generic");
  118. arb.add(0, 0);
  119. arb.add(9, 1);
  120. arb.add(2, 1);
  121. arb.add(4, 2);
  122. arb.add(7, 2);
  123. arb.add(72, 2);
  124. arb.add(6, 3);
  125. arb.search(4);
  126. arb.printTree();
  127. arb.delete(6);
  128. arb.printTree();
  129. }
  130. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement