Actually, that's not how the huffman alg. works... At its simplest, the most frequently used character is assigned a single bit to indicate its occurrence. The next most frequently used character is assigned two bits... and so on... So the bit patterns for your example would look like:
a=0
b=10
c=110
d=1110
Then you need a "virtual end of file" character. Which in this case would be 11110. The table of characters needs to be written at the beginning of the file so that you know how to decode the data that follows.
Intel Pentium 4, 3.4GHz, 1280MB RAM, NVidia Quadro FX3000/256MB, 240GB HD, XP Pro