Advertisement
Montoya-Romina-Anahi

TP5-Punto1

Jul 3rd, 2020
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.47 KB | None | 0 0
  1. public class ArbolBinario {
  2. class Nodo
  3. {
  4. int info;
  5. Nodo izq, der;
  6. }
  7. Nodo raiz;
  8. int cant;
  9. int altura;
  10.  
  11. public ArbolBinario() {
  12. raiz=null;
  13. }
  14.  
  15. public void insertar (int info) {
  16. if (!existe(info)) {
  17. Nodo nuevo;
  18. nuevo = new Nodo ();
  19. nuevo.info = info;
  20. nuevo.izq = null;
  21. nuevo.der = null;
  22. if (raiz == null)
  23. raiz = nuevo;
  24. else {
  25. Nodo anterior = null, reco;
  26. reco = raiz;
  27. while (reco != null) {
  28. anterior = reco;
  29. if (info < reco.info)
  30. reco = reco.izq;
  31. else
  32. reco = reco.der;
  33. }
  34. if (info < anterior.info)
  35. anterior.izq = nuevo;
  36. else
  37. anterior.der = nuevo;
  38. }
  39. }
  40. }
  41.  
  42. public boolean existe(int info) {
  43. Nodo reco=raiz;
  44. while (reco!=null) {
  45. if (info==reco.info)
  46. return true;
  47. else
  48. if (info>reco.info)
  49. reco=reco.der;
  50. else
  51. reco=reco.izq;
  52. }
  53. return false;
  54. }
  55.  
  56. private void imprimirEntre (Nodo reco) {
  57. if (reco != null) {
  58. imprimirEntre (reco.izq);
  59. System.out.print(reco.info + " ");
  60. imprimirEntre (reco.der);
  61. }
  62. return;
  63. }
  64.  
  65. public void DescendingOrder() {
  66. DescendingOrder(this.raiz);
  67. }
  68. protected void DescendingOrder(Nodo reco) {
  69. if (reco != null) {
  70. DescendingOrder(reco.der);
  71. System.out.print(reco.info + " ");
  72. DescendingOrder(reco.izq);
  73. }
  74. }
  75.  
  76. public void imprimirEntre () {
  77. imprimirEntre (raiz);
  78. System.out.println();
  79. }
  80.  
  81.  
  82. private void cantidad(Nodo reco) {
  83. if (reco!=null) {
  84. cant++;
  85. cantidad(reco.izq);
  86. cantidad(reco.der);
  87. }
  88. }
  89.  
  90. public int cantidad() {
  91. cant=0;
  92. cantidad(raiz);
  93. return cant;
  94. }
  95.  
  96. private void cantidadNodosHoja(Nodo reco) {
  97. if (reco!=null) {
  98. if (reco.izq==null && reco.der==null)
  99. cant++;
  100. cantidadNodosHoja(reco.izq);
  101. cantidadNodosHoja(reco.der);
  102. }
  103. }
  104.  
  105. public int cantidadNodosHoja() {
  106. cant=0;
  107. cantidadNodosHoja(raiz);
  108. return cant;
  109. }
  110.  
  111. private void imprimirEntreConNivel (Nodo reco,int nivel) {
  112. if (reco != null) {
  113. imprimirEntreConNivel (reco.izq,nivel+1);
  114. System.out.print(reco.info + " ("+nivel+") - ");
  115. imprimirEntreConNivel (reco.der,nivel+1);
  116. }
  117. }
  118.  
  119.  
  120. public void imprimirEntreConNivel () {
  121. imprimirEntreConNivel (raiz,1);
  122. System.out.println();
  123. }
  124.  
  125. private void retornarAltura (Nodo reco,int nivel) {
  126. if (reco != null) {
  127. retornarAltura (reco.izq,nivel+1);
  128. if (nivel>altura)
  129. altura=nivel;
  130. retornarAltura (reco.der,nivel+1);
  131. }
  132. }
  133.  
  134. public int retornarAltura () {
  135. altura=0;
  136. retornarAltura (raiz,1);
  137. return altura;
  138. }
  139.  
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement