Advertisement
Guest User

Untitled

a guest
Dec 19th, 2016
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Oz 0.66 KB | None | 0 0
  1. meth isBalanced($)
  2.    local NumLeave A L R X Y in
  3.       fun{NumLeave T}
  4.      local A B in
  5.         if {T getLeft($)} == leaf then A = 1
  6.         else A = {NumLeave {T getLeft($)}}
  7.         end
  8.         if {T getRight($)} == leaf then B = 1
  9.         else B = {NumLeave {T getRight($)}}  
  10.         end
  11.         A + B
  12.      end
  13.       end
  14.  
  15.       if @right == leaf then R = true X = 1
  16.       else R = {@right isBalanced($)} X = {NumLeave @right}
  17.       end
  18.  
  19.       if @left == leaf then L = true Y = 1
  20.       else L = {@left isBalanced($)} Y = {NumLeave @left}
  21.       end
  22.      
  23.      
  24.       A = X - Y
  25.       if A < 2 andthen ~2 < A andthen R andthen L  then true
  26.       else false
  27.       end
  28.    end
  29. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement