添加:
添加的时候可以用数组,循环添加,我是一步一步测试方便,才一个一个添加。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script> 7 var root=null; 8 function bt_add(node,n){ 9 if(node==null){ 10 alert('没有根节点把'+n+'当成根节点'); 11 node={ 12 value:n, 13 l:null, 14 r:null 15 }; 16 }else{ 17 if(node.value==n){ 18 return; 19 }else if(node.value<n){ 20 alert('试图往右走'); 21 node.r=bt_add(node.r,n); 22 }else{ 23 alert('试图往左走'); 24 node.l=bt_add(node.l,n); 25 } 26 } 27 return node; 28 } 29 root=bt_add(root,50); 30 root=bt_add(root,35); 31 root=bt_add(root,60); 32 root=bt_add(root,21); 33 root=bt_add(root,45); 34 root=bt_add(root,55); 35 root=bt_add(root,70); 36 </script> 37 </head> 38 <body> 39 40 </body> 41 </html>
查找:
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Document</title> 6 <script> 7 var root=null; 8 function bt_add(node,n){ 9 if(node==null){ 10 node={ 11 value:n, 12 l:null, 13 r:null 14 }; 15 }else{ 16 if(node.value==n){ 17 return; 18 }else if(node.value<n){ 19 node.r=bt_add(node.r,n); 20 }else{ 21 node.l=bt_add(node.l,n); 22 } 23 } 24 return node; 25 } 26 function bt_find(node,n){ 27 if(node==null){ 28 return false; 29 }else{ 30 if(node.value==n){ 31 return true; 32 }else if(node.value<n){ 33 return bt_find(node.r,n); 34 }else{ 35 return bt_find(node.l,n); 36 } 37 } 38 } 39 root=bt_add(root,50); 40 root=bt_add(root,35); 41 root=bt_add(root,60); 42 root=bt_add(root,21); 43 root=bt_add(root,45); 44 root=bt_add(root,55); 45 root=bt_add(root,70); 46 alert(bt_find(root,5)); 47 </script> 48 </head> 49 <body> 50 51 </body> 52 </html>