Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

309
Vistas
La búsqueda de árbol binario devuelve el número más alto

Estoy tratando de encontrar el auto con el mayor número de premios. Visito cada nodo del árbol y obtengo el tamaño de la matriz y lo comparo con cada nodo. Sin embargo, parece que no puedo devolver el nodo con el valor más alto. ¿Alguien podría mirar mi código y señalar qué tiene de malo? Además, no estoy seguro de si lo estoy devolviendo correctamente desde el método recursivo mostPrizes .

Mi árbol

 public class Car{ private String name; private double key; private ArrayList<Prize> Prizes; public Car left; public Car right; public Car(String name) { this.name = name; } public double getKey() { return key; } public void setKey(double key) { this.key = key; } public ArrayList<Prize> getPrizes() { return Prizes; } public void setPrizes(ArrayList<Prize> Prizes) { this.Prizes = Prizes; }} public class main{ public Car root; public void findWiner() { Car winner; Car a = root; Car b = root; winner = mostPrizes(a,b) public Car mostPrizes (Car car, Car best) { Car temp = best; //visit left node if (car.left != null){ mostPrizes(car.left,best); } //check how many prizes if(car.getPrizes().size() < best.getPrizes().size()){ best = car; } //visit right nodes if (car.right != null ){ mostPrizes(car.right,best); } return best; }}
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El método mostPrzes suyo no es correcto, porque no está asignando lo best de los subárboles izquierdo y derecho al best actual, cámbielo al código a continuación

 public Car mostPrizes (Car car) { if(car== null){ return null; } Car leftMax= mostPrizes(car.left); Car rightMax= mostPrizes(car.right); if(leftMax!=null){ if(car.getPrizes().size()>leftMax.getPrizes().size()){ return node; } else{ return leftMax; } } if(rightMax!=null){ if(car.getPrizes().size()>rightMax.getPrizes().size()){ return node; } else{ return rightMax; } } return car; }
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda