Advertisement
Guest User

afdgasdg

a guest
Jun 9th, 2014
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 0.55 KB | None | 0 0
  1. def encode(tree: CodeTree)(text: List[Char]): List[Bit] = {
  2.       def encodeChar( t: CodeTree, char: Char, bitAcc: List[Bit] ): List[Bit] = t match {
  3.         case Leaf( c, w ) => bitAcc
  4.         case Fork( left , right, c, w ) =>
  5.           if( chars(left).contains(char) ) encodeChar( left, char, bitAcc:::List(0) )
  6.           else if (chars(right).contains(char)) encodeChar( right, char, bitAcc:::List(1) )
  7.           else throw new Error("Char Not Found at Fork")
  8.       }
  9.       if( text.isEmpty ) List()
  10.       else encodeChar( tree, text.head, List() ) ::: encode(tree)(text.tail)
  11.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement