mramine364

treeSort

May 15th, 2016
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function treeSort(t){
  2.     var tree = _treeElem(t[t.length-1], null, null, null);
  3.     for(var i=0;i<t.length-1;i++){     
  4.         _buildTree(tree, t[i]);
  5.     }
  6.     //console.log(tree);
  7.     t.splice(0);
  8.     _sortedTree(tree, t);
  9. }
  10.  
  11. function _sortedTree(tree, t){
  12.     if( tree.first ){
  13.         _sortedTree(tree.first, t);
  14.  
  15.     }
  16.     t.push(tree.value);
  17.     if( tree.second ){
  18.         _sortedTree(tree.second, t);
  19.     }
  20. }
  21.  
  22. function _buildTree(tree, v){
  23.    
  24.     if( tree.value>=v ){
  25.         if( tree.first ){
  26.             _buildTree(tree.first, v)
  27.         }else{
  28.             tree.first = _treeElem(v, tree, null, null);
  29.         }
  30.     }else{
  31.         if( tree.second ){
  32.             _buildTree(tree.second, v)
  33.         }else{
  34.             tree.second = _treeElem(v, tree, null, null);
  35.         }
  36.     }
  37.  
  38. }
  39.  
  40. function _treeElem(v, p, f, s){
  41.     return {
  42.         parent: p,
  43.         first: f,
  44.         second: s,
  45.         value: v
  46.     };
  47. }
Advertisement
Add Comment
Please, Sign In to add comment