


Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
El codigo es de java donde lees un archivo txt. y lo acomoda en inorden y posorden
Tipo: Ejercicios
1 / 4
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
public static void main(String[] args) { Scanner lee=new Scanner(System.in); int opt=0; Arbol_b b=new Arbol_b(); while (opt!=8){ System.out.println("MENÚ PRINCIPAL"); System.out.println("1.- Leer documento"); System.out.println("2.- Inorden"); System.out.println("3.- Postorden"); System.out.println("4.- Preorden"); System.out.println("5.- Buscar"); System.out.println("6.- Total de nodos"); System.out.println("7.- Sumatoria"); System.out.println("8.- Salir"); opt=lee.nextInt(); lee.nextLine(); switch(opt){ case 1:{ try { File file = new File("numeros.txt"); Scanner fileScanner = new Scanner(file); while (fileScanner.hasNextInt()) { int num = fileScanner.nextInt(); b.insert(num); } fileScanner.close(); System.out.println("Números leídos y almacenados en el árbol binario."); } catch (FileNotFoundException e) { System.out.println("Error: Archivo no encontrado."); } break; } case 2:{ System.out.println("Recorrido Inorden:"); b.inOrder(); System.out.println(); break; } case 3:{ System.out.println("Recorrido Postorden:"); b.postOrder(); System.out.println(); break; } case 4:{ System.out.println("Recorrido Preorden:"); b.preOrder(); System.out.println(); break; } case 5:{ System.out.print("Ingrese el número que desea buscar: "); int numToFind = lee.nextInt(); int level = b.nivel(b.root, numToFind, 0); // Llama al método nivel de la instancia b. if (level != -1) { System.out.println("El número " + numToFind + " se encuentra en el nivel " + level); } else {
System.out.println("El número " + numToFind + " no se encuentra en el árbol."); } break; } case 6:{ int totalNodes = b.cantNodos(b.root); System.out.println("El total de nodos en el árbol es: " + totalNodes); break; } case 7:{ int sum = b.suma(b.root); System.out.println("La sumatoria de los números en el árbol es: " + sum); break; } case 8:{ break; } } } } } public class Nodo { int data; Nodo left, right; public Nodo(int data) { this.data = data; left = right = null; } } public class Arbol_b { Nodo root; public void insert(int data) { root = insertRec(root, data); } private Nodo insertRec(Nodo root, int data) { if (root == null) { root = new Nodo(data); return root; } if (data < root.data) { root.left = insertRec(root.left, data); } else if (data > root.data) { root.right = insertRec(root.right, data); } return root; }
return 0; } int leftCount =cantNodos(root.left); int rightCount = cantNodos(root.right); return 1 + leftCount + rightCount; } public int suma(Nodo root) { if (root == null) { return 0; // El árbol está vacío, la suma es 0. } // Sumamos el valor del nodo actual y los valores en los subárboles izquierdo y derecho. int leftSum = suma(root.left); int rightSum = suma(root.right); return root.data + leftSum + rightSum; // Sumamos el valor del nodo actual. } }