Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad

codigo java sobre arbol binario, Ejercicios de Estructuras de Datos y Algoritmos

El codigo es de java donde lees un archivo txt. y lo acomoda en inorden y posorden

Tipo: Ejercicios

2023/2024

Subido el 01/12/2023

emmanuel-pineda-jimenez
emmanuel-pineda-jimenez 🇲🇽

4

(1)

4 documentos

1 / 4

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
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 {
pf3
pf4

Vista previa parcial del texto

¡Descarga codigo java sobre arbol binario y más Ejercicios en PDF de Estructuras de Datos y Algoritmos solo en Docsity!

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. } }