• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
    • Questions
    • Teachers
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

260
Views
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; }}
almost 3 years ago · Santiago Trujillo
1 answers
Answer question

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; }
almost 3 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error