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