2016-11-05 105 views
0

我試圖解決一個霍夫曼編碼問題,但我不完全確定我完全理解這個話題。我試圖找出如果下面是是一個有效的霍夫曼代碼:有效的霍夫曼編碼?

A: 0 
B: 01 
C: 11 
D: 110 
E: 111 

我在想什麼的是,它是無效的,因爲A,或1,會侵害到B,或01我雖然不是積極的。有人能爲此啓發我嗎?

編輯:對不起,我想鍵入A作爲0而不是1

+2

非常無效。 A是C和D和E的前綴,C是D和E的前綴.A和B雖然很好。 – harold

+0

對不起,我犯了一個錯字。 A實際上是0,而不是1.感謝您的快速回答!答:0仍然成立? –

+1

仍然無效,您無法判斷「00111」是「AAE」還是「ABC」,「110」是否可以是「D」或「CA」等。 –

回答

1

號的霍夫曼碼是一個前綴碼,這意味着沒有代碼可以是任何其它碼的前綴。在你的榜樣,A是B的前綴,C是既d和E的前綴

有效的前綴碼是:

A: 0 
B: 10 
C: 11 

那至於你可以用代碼去長度爲1,2和2.任何其他代碼都是這些代碼的前綴。這是不可能具有與長度1,2,2,3的前綴碼,和3

這是爲五個符號的有效前綴碼:

A: 0 
B: 10 
C: 110 
D: 1110 
E: 1111 

爲是這樣的:

A: 00 
B: 01 
C: 10 
D: 110 
E: 111