2015-01-08 8 views
1

주어진 주파수가 허프만 트리를 생성 :프로그램/애플릿 I 같이, 그 주파수와 알파벳을 부여받은

E : 17.4

N : 9,78

J : 0,27

등등. 알파벳의 모든 문자에 대해. 제 질문은 :

주어진 주파수로 허프만 트리를 생성하는 프로그램/애플릿이 있습니까? 내가 찾은 유일한 생성기는 텍스트를 입력으로 사용합니다.

어쩌면 당신 중 한 명이 아이디어를 가지고 있을지도 모릅니다. 고마워요!

+0

"17,4"은 무엇을 의미합니까? –

+0

이 값은 문자의 상대 빈도입니다. 텍스트가 1000 단어 인 경우 문자 e는이 텍스트에 174 회 존재합니다. 내 문제는 텍스트를 스캔 한 다음 문자의 빈도를 계산하는 프로그램 만 있다는 것입니다. 그러나 나는 이미이 값들을 받았습니다 ... – Cortex

+0

아, 쉼표는 여기에 소수점이어야합니다. 쉼표는 처음에 나를 혼란스럽게 만들었습니다. 17 번과 4 번이 무엇을 나타내는 지 궁금합니다. –

답변

1

문자를 취하고 그 주파수를 계산 한 다음 허프만 알고리즘을 적용하는 소스 코드가있는 경우 주파수를 계산하는 부분을 제거하고 빈도에 직접 허프만 알고리즘을 사용할 수 있습니다.

그렇지 않으면 허프만 알고리즘을 직접 작성할 수 있습니다. 거기서 가장 단순하고 가장 훌륭한 알고리즘 중 하나이기 때문에 모든 사람이 적어도 한 번은 스스로 구현해야합니다. 주파수를 정렬하고 두 개의 주파수를 가장 낮게 선택합니다. 이 두 기호는 트리의 첫 번째 분기로 결합됩니다. 정렬 된 목록의 빈도 합계를 다시 삽입하십시오. 모든 기호가 트리의 일부가 될 때까지 반복하십시오.