用Java实现二叉树
package com. dgut. test. demo7 ;
import java. util. regex. Matcher ;
public class Test {
public static void main ( String [ ] args) {
int [ ] data = new int [ 20 ] ;
for ( int i = 0 ; i < data. length; i++ ) {
data[ i] = ( int ) ( Math . random ( ) * 100 ) + 1 ;
System . out. print ( data[ i] + "," ) ;
}
System . out. println ( ) ;
Node root = new Node ( ) ;
root. value = data[ 0 ] ;
for ( int i = 1 ; i < data. length; i++ ) {
root. store ( data[ i] ) ;
}
root. find ( data[ 19 ] ) ;
System . out. println ( "" ) ;
root. preList ( ) ;
System . out. println ( "" ) ;
root. middleList ( ) ;
System . out. println ( "" ) ;
root. afterList ( ) ;
}
}
class Node {
public int value;
public Node left;
public Node right;
public void store ( int value) {
if ( value < this . value) {
if ( left == null ) {
left = new Node ( ) ;
left. value = value;
} else {
left. store ( value) ;
}
}
else if ( value> this . value) {
if ( right == null ) {
right = new Node ( ) ;
right. value = value;
} else {
right. store ( value) ;
}
}
}
public boolean find ( int value) {
System . out. print ( "pass " + this . value+ " " ) ;
if ( value == this . value) {
return true ;
} else if ( value > this . value) {
if ( right == null ) {
return false ;
} else {
return right. find ( value) ;
}
} else {
if ( left == null ) {
return false ;
} else {
return left. find ( value) ;
}
}
}
public void preList ( ) {
System . out. print ( this . value + "," ) ;
if ( left!= null ) {
left. preList ( ) ;
}
if ( right!= null ) {
right. preList ( ) ;
}
}
public void middleList ( ) {
if ( left!= null ) {
left. middleList ( ) ;
}
System . out. print ( this . value + "," ) ;
if ( right!= null ) {
right. middleList ( ) ;
}
}
public void afterList ( ) {
if ( left!= null ) {
left. afterList ( ) ;
}
if ( right!= null ) {
right. afterList ( ) ;
}
System . out. print ( this . value + "," ) ;
}
}
39,84,40,77,78,25,63,87,91,30,34,18,41,45,48,53,14,11,72,43,
pass 39 pass 84 pass 40 pass 77 pass 63 pass 41 pass 45 pass 43
39,25,18,14,11,30,34,84,40,77,63,41,45,43,48,53,72,78,87,91,
11,14,18,25,30,34,39,40,41,43,45,48,53,63,72,77,78,84,87,91,
11,14,18,34,30,25,43,53,48,45,41,72,63,78,77,40,91,87,84,39,