Java 设计一个Hero二叉树,HeroNode. 可以向这个英雄二叉树插入不同的Hero对象,并且按照Hero的血量升排序。 随机生成10个Hero对象,每个Hero对象都有不同的血量值,插


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());
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值