Free Web Hosting by Netfirms
Web Hosting by Netfirms | Free Domain Names by Netfirms

/* Mohamed Anis MEKKI - 2003 (c) */ public class tree { symbol root; tree right; tree left; tree[] lefts = new tree[1000]; int pos=0; tree[] last_lefts = new tree[10]; int last_pos=-1; public tree ( symbol s,tree r,tree l) { root = s; right = r; left = l; } public static tree[] classify_tree_up(tree[] t,int l) { int i=0; boolean notyet = true; tree permut = new tree(null,null,null); while (notyet)//while 1 { i=0; notyet = false; while ( i < l )// while 2 { if ( ((t[i]).root).prob < ((t[i+1]).root).prob )// if 1 { permut = t[i]; t[i] = t[i+1]; t[i+1] = permut; notyet = true; }// end if 1 i++; }// end while 1 }// end while 2 return(t); }// end classify_up() public void show_right(tree[] t, int l) { tree vase = new tree(null,null,null); vase = this; while( vase != null ) { if ( (vase.right) !=null ) { (vase.root).show_prob(); System.out.print("___"); }// fin if else { (vase.root).show_tree(); } vase = (vase.right); } // fin while System.out.println(""); }// fin show_right() public void make_lefts() { tree vase = new tree(null,null,null); vase = this; int i=0; while ( i < last_pos ) { lefts[i] = last_lefts[i]; i++; } while( vase != null ) { lefts[i] = vase.left; vase = (vase.right); i++; } // fin while pos=i; }// fin make_left() public void go(int order, String s) { int off=0; int deb = 4; if ( order == 0) { deb = 2; } int fin = 4; while ( off < deb ) { System.out.print(" "); off++; } System.out.print(s); off=0; while ( off < fin ) { System.out.print(" "); off++; } } public void decale(tree[] tab, int l) { int i=0; while ( i <= l) { if ( tab[i] != null ) { //System.out.print(" | "); go(i,"|"); } else { //System.out.print(" "); go(i," "); } i++; } System.out.println(""); i=0; while ( i < l) { if ( tab[i] != null ) { //System.out.print(" | "); if ( i==(l-1) ) { go(i,"| "); } else { go(i,"|"); } } else { //System.out.print(" "); if ( i==(l-1) ) { go(i," "); } else { go(i," "); } } i++; } } public void show () { show_right(this.lefts,pos); make_lefts(); int k=pos; while ( k >= Math.max(last_pos,0) ) { if ( lefts[k] != null ) { lefts[k].last_lefts = this.lefts; lefts[k].last_pos = k; decale(this.lefts,k); lefts[k].show(); } else { } k--; } } public static void main( String args[] ) { symbol anis = new symbol("anis",0.2); symbol nabil = new symbol("nabil",0.3); symbol cnss = new symbol("cnss",9.9); symbol male = new symbol("male",0.1); symbol female = new symbol("female",0.0); symbol sawsen = new symbol("sawsen",0.4); symbol azza = new symbol("azza",0.5); tree a1 = new tree(anis,null,null); tree a2 = new tree(nabil,null,null); tree a3 = new tree(sawsen,null,null); tree a4 = new tree(azza,null,null); tree a8 = new tree(male,a1,a2); tree a9 = new tree(female,a3,a4); tree a0 = new tree(cnss,a8,a9); tree a11 = new tree(cnss,a0,a0); tree a12 = new tree(cnss,a11,a11); tree a13 = new tree(cnss,a12,a12); tree a = new tree(cnss,a13,a13); a.show(); System.out.println(""); } }