playXP

서브 메뉴

Page. 156 / 271 [내 메뉴에 추가]
글쓰기
작성자 낙원의새
작성일 2010-11-27 23:40:09 KST 조회 311
제목
트리거 응용 조언 부탁드립니다.

허프만 알고리즘을 라이브러리로 구현할려고 합니다.

월래 C++ 로 작성된 소스를 그데로 변환해서 옴길려고 했지만

지식 부족으로 인해서 차라이 순수 트리거를 이용해서 구현해볼까 합니다.

 

texttype[x][y] 이라는 변수(변수유형: 문자열)가 있을때

지정된 변수 K (변수유형: 문자열) 에 들어있는 문자의 종류만큼 반복해서 알파벳의 갯수가 0 이 아닐 경우

변수 texttype[1][0] 은 갯수를 지정하고 변수 texttype[1][1] 은 해당 알파벳(문자열) 으로 지정합니다.

변수 texttype[2][0] 은 갯수를 지정하고 변수 texttype[2][1] 은 해당 알파벳(문자열) 으로 지정합니다.

변수 texttype[3][0] 은 갯수를 지정하고 변수 texttype[3][1] 은 해당 알파벳(문자열) 으로 지정합니다.

이렇게 ? 개에 해당하는 배열값이 지정되었습니다.

(지정된 변수 K 에 알파벳의 종류가 5개일 경우 지정된 배열은 모두 10개입니다.)

여기에는 위 내용을 For 문으로 만들기 위한 다듬기 과정은 생략할께요.

 

그럼 지금부터. 호프만 트리를 만들기 위해 아래 트리거를 K 문자열에 있는 알파벳 갯수만큼 반복합니다.

※ 여기서 n 은 반복 횟수 입니다.

※ 여기서 a 값은 초기에 검색한 K 문자열에 있는 알파벳의 종류입니다.

※ 선택된 이라는 것은 "트리거" 부분에서 지정한 x 값이 지정하는 배열이라는 뜻입니다.

트리거 - texttype[x][y] 배열 중 y 가 0 인 배열 값 중에 값이 0 이 아닌

            가장 작은 수를 가지고 있는 배열 값을 x 로 선택합니다.

변수 texttype[a+n][0] 을 선택된 texttype[x][0] 으로 설정합니다.

변수 texttype[a+n][1] 을 선택된 texttype[x][1] 으로 설정합니다.

선택된 texttype[x][0] 을 "0" 으로 설정합니다.  //* 한번 뽑아낸 수를 반복해서 사용하지 않기 위한 설정.

트리거 - texttype[x][y] 배열 중 y 가 0 인 배열 값 중에 값이 0 이 아닌

            가장 작은 수를 가지고 있는 배열 값을 x 로 선택합니다.

            (모두 0 일경우 트리거 즉시 종료)

변수 선택된 texttype[x][0] 를 texttype[a+n][0] 값 더하기 선택된 texttype[x][0]의 값 으로 설정합니다.

변수 texttype[x][1] 을 "&" 으로 설정합니다.

-- (반복 종료 후)

 

결과: (만일 a=5 라면)

texttype[6][1] 에는 가장 작은 알파벳 값이 저장되어있다.

texttype[7][1] 에는 두번째로 작은 알파벳 값이 저장되어있다.

texttype[8][1] 에는 세번째로 작은 알파벳 값이 ...

... 등등등

트리 구성에 필요한 값을 뽑아냈으니

texttype[x][y] x 를 통해서 우선 순위를 가려낼 수 있고

y 를 통해서 0 & 1 값을 산출할 수도 있으니 이것을 이용해서

허프만 알고리즘 방식으로 코드 생성해야하겠는데 ..

트리거를 어떻게 만들어야 할까요 ... =_= .. 막막 합니다.

모든 루트를 검색할 수는 없으니 지정된 배열에 있는

정수를 이용해서 뽑아내야 할 것 같은데 .. 흠 ;;

 

일단 위에 적어논게 맞는지도 모르겠고 ==;;

트리거를 어떻게 만들어야 할지 조언 좀 부탁드립니다.

혹시 이미 만들어 놓은 허프만 알고리즘 라이브러리가 있다면 괜찮으실 경우 공유 좀 부탁드립니다.

지속적인 허위 신고시 신고자가 제재를 받을 수 있습니다.
신고 사유를 입력하십시오:

발도장 찍기
아이콘 LlIiEe (2010-11-28 13:53:53 KST)
0↑ ↓0
센스 이미지
http://www.playxp.com/sc2/galaxy/view.php?article_id=2382090
예제 만들어서 올려드렸습니다
댓글을 등록하려면 로그인 하셔야 합니다. 로그인 하시려면 [여기]를 클릭하십시오.
롤토체스 TFT - 롤체지지 LoLCHESS.GG
소환사의 협곡부터 칼바람, 우르프까지 - 포로지지 PORO.GG
배그 전적검색은 닥지지(DAK.GG)에서 가능합니다
  • (주)플레이엑스피
  • 대표: 윤석재
  • 사업자등록번호: 406-86-00726

© PlayXP Inc. All Rights Reserved.