Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def encode(tree: CodeTree)(text: List[Char]): List[Bit] = {
- def encodeChar( t: CodeTree, char: Char, bitAcc: List[Bit] ): List[Bit] = t match {
- case Leaf( c, w ) => bitAcc
- case Fork( left , right, c, w ) =>
- if( chars(left).contains(char) ) encodeChar( left, char, bitAcc:::List(0) )
- else if (chars(right).contains(char)) encodeChar( right, char, bitAcc:::List(1) )
- else throw new Error("Char Not Found at Fork")
- }
- if( text.isEmpty ) List()
- else encodeChar( tree, text.head, List() ) ::: encode(tree)(text.tail)
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement