This commit is contained in:
Asecave
2020-12-05 12:23:51 +01:00
parent 341f1fad94
commit d2cd58e2c3
4 changed files with 254 additions and 223 deletions

View File

@@ -46,4 +46,9 @@ public class Athlete implements ComparableContent<Athlete> {
public boolean isLess(Athlete athlete) { public boolean isLess(Athlete athlete) {
return getFinalTime() < athlete.getFinalTime(); return getFinalTime() < athlete.getFinalTime();
} }
@Override
public String toString() {
return name;
}
} }

View File

@@ -257,8 +257,18 @@ public class BinarySearchTree<ContentType extends ComparableContent<ContentType>
return node.right.node; return node.right.node;
} }
public void printInOrder() { public List<ContentType> getInOrder() {
//TODO List<ContentType> inOrder = new List<>();
getPartTree(this, inOrder);
return inOrder;
}
private void getPartTree(BinarySearchTree<ContentType> tree, List<ContentType> inOrder) {
if (tree != null && tree.getContent() != null) {
getPartTree(tree.getLeftTree(), inOrder);
inOrder.append(tree.getContent());
getPartTree(tree.getRightTree(), inOrder);
}
} }
} }

View File

@@ -22,13 +22,24 @@ public class Competition {
leaderboard.insert(runners.getContent()); leaderboard.insert(runners.getContent());
runners.next(); runners.next();
} }
leaderboard.printInOrder();
} }
public Athlete[] top3() { public Athlete[] top3() {
Athlete[] top = new Athlete[3]; Athlete[] top = new Athlete[3];
//TODO List<Athlete> inOrder = leaderboard.getInOrder();
inOrder.toFirst();
top[0] = inOrder.getContent();
inOrder.next();
if (!inOrder.hasAccess()){
return top;
}
top[1] = inOrder.getContent();
inOrder.next();
if (!inOrder.hasAccess()){
return top;
}
top[2] = inOrder.getContent();
inOrder.next();
return top; return top;
} }
} }

View File

@@ -18,6 +18,11 @@ public class TestCompetition {
competition.newRunner("a"); competition.newRunner("a");
competition.simulate(); competition.simulate();
Athlete[] top = competition.top3();
for (int i = 0; i < top.length; i++) {
System.out.println(top[i] + ": " + top[i].getFinalTime());
}
} }
} }