public class Hero implements {
public String name ;
public float hp;
public Hero(){}
public Hero(String name,float hp){
this.name = name;
this.hp = hp;
}
public String toString(){
return "name:"+name+"\t"+"hp:"+ hp+"\n";
}
}
package collection;
import java.util.List;
import java.util.ArrayList;
import file.Hero;
public class HeroNode{
public HeroNode leftNode;
public HeroNode rightNode;
public Hero hero;
public void add(Hero h){
if(null==hero){
hero = h;
}
else{
if(hero.hp>=h.hp){
if(null==leftNode)
leftNode = new HeroNode();
leftNode.add(h);
}
else{
if(null==rightNode)
rightNode = new HeroNode();
rightNode.add(h);
}
}
}
public List<Object> values(){
List<Object> value = new ArrayList<>();
if(leftNode!=null)
value.addAll(leftNode.values());
value.add(hero);
if(null!=rightNode)
value.addAll(rightNode.values());
return value;
}
public static void main(String[] args){
Hero heros[] = new Hero[10];
for(int i=0;i<10;i++){
heros[i] = new Hero("hero"+i, (float)(Math.random()*100));
System.out.println(heros[i]);
}
HeroNode hn = new HeroNode();
for(int i=0;i<10;i++){
hn.add(heros[i]);
}
System.out.println(hn.values());
}
}
转载自原文链接, 如需删除请联系管理员。
原文链接:Java 设计一个Hero二叉树,HeroNode. 可以向这个英雄二叉树插入不同的Hero对象,并且按照Hero的血量升排序。 随机生成10个Hero对象,每个Hero对象都有不同的血量值,插,转载请注明来源!