//>>built define("dojox/collections/BinaryTree",["dojo/_base/kernel","dojo/_base/array","./_base"],function(_1,_2,_3){ _3.BinaryTree=function(_4){ function _5(_6,_7,_8){ this.value=_6||null; this.right=_7||null; this.left=_8||null; this.clone=function(){ var c=new _5(); if(this.value.value){ c.value=this.value.clone(); }else{ c.value=this.value; } if(this.left!=null){ c.left=this.left.clone(); } if(this.right!=null){ c.right=this.right.clone(); } return c; }; this.compare=function(n){ if(this.value>n.value){ return 1; } if(this.valued){ return 1; } if(this.value0){ return _12(_13.left,_14); }else{ return _12(_13.right,_14); } }; this.add=function(_15){ var n=new _5(_15); var i; var _16=_17; var _18=null; while(_16){ i=_16.compare(n); if(i==0){ return; } _18=_16; if(i>0){ _16=_16.left; }else{ _16=_16.right; } } this.count++; if(!_18){ _17=n; }else{ i=_18.compare(n); if(i>0){ _18.left=n; }else{ _18.right=n; } } }; this.clear=function(){ _17=null; this.count=0; }; this.clone=function(){ var c=new _3.BinaryTree(); var itr=this.getIterator(); while(!itr.atEnd()){ c.add(itr.get()); } return c; }; this.contains=function(_19){ return this.search(_19)!=null; }; this.deleteData=function(_1a){ var _1b=_17; var _1c=null; var i=_1b.compareData(_1a); while(i!=0&&_1b!=null){ if(i>0){ _1c=_1b; _1b=_1b.left; }else{ if(i<0){ _1c=_1b; _1b=_1b.right; } } i=_1b.compareData(_1a); } if(!_1b){ return; } this.count--; if(!_1b.right){ if(!_1c){ _17=_1b.left; }else{ i=_1c.compare(_1b); if(i>0){ _1c.left=_1b.left; }else{ if(i<0){ _1c.right=_1b.left; } } } }else{ if(!_1b.right.left){ if(!_1c){ _17=_1b.right; }else{ i=_1c.compare(_1b); if(i>0){ _1c.left=_1b.right; }else{ if(i<0){ _1c.right=_1b.right; } } } }else{ var _1d=_1b.right.left; var _1e=_1b.right; while(_1d.left!=null){ _1e=_1d; _1d=_1d.left; } _1e.left=_1d.right; _1d.left=_1b.left; _1d.right=_1b.right; if(!_1c){ _17=_1d; }else{ i=_1c.compare(_1b); if(i>0){ _1c.left=_1d; }else{ if(i<0){ _1c.right=_1d; } } } } } }; this.getIterator=function(){ var a=[]; _9(_17,a); return new _3.Iterator(a); }; this.search=function(_1f){ return _12(_17,_1f); }; this.toString=function(_20,sep){ if(!_20){ _20=_3.BinaryTree.TraversalMethods.Inorder; } if(!sep){ sep=","; } var s=""; switch(_20){ case _3.BinaryTree.TraversalMethods.Preorder: s=_b(_17,sep); break; case _3.BinaryTree.TraversalMethods.Inorder: s=_e(_17,sep); break; case _3.BinaryTree.TraversalMethods.Postorder: s=_10(_17,sep); break; } if(s.length==0){ return ""; }else{ return s.substring(0,s.length-sep.length); } }; this.count=0; var _17=this.root=null; if(_4){ this.add(_4); } }; _3.BinaryTree.TraversalMethods={Preorder:1,Inorder:2,Postorder:3}; return _3.BinaryTree; });