Advertisement
Guest User

Pour toi nico <33

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