Home > Zib
library에서 사용하는 알고리즘 > Lempel-Ziv 알고리즘
> TABLES
루프패스 |
버퍼 |
C |
전송 |
테이블 |
새 값 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
A B A AB A AB C B BA B BA BAB A AB ABC B BA BAB BABA |
B A B A B C B A B A B A B C B A B A B |
0(A에 대한 코드) 1(B에 대한 코드) 3(AB에 대한 코드) 3(AB에 대한 코드) 2(C에 대한 코드) 4(BA에 대한 코드) 8(BAB에 대한 코드) 6(ABC에 대한 코드) 9(BABA에 대한 코드) |
AB(code=3) BA(code=4) ABC(code=6) CB(code=7) BAB(code=8) BABA(code=9) ABCB(code=10) BABAB(code=11) |
B A AB A AB C B BA B BA BAB A AB ABC B BA BAB BABA B |
스트링 |
A |
B |
C |
AB |
BA |
|
ABC |
CB |
BAB |
BABA |
ABCB |
BABAB |
BABC |
CBA |
코트 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
입력
문자열: ‘ABABABCBABABABCBABABABCBA’
전송되는
코드: 0 1 3 3 2 4 8 6 9 8 7 0
루프 패스 |
Prior(스트링) |
현재 (스트링) |
테이블의 현재 코드 |
C |
임시 스트링 / 코드 쌍 |
인쇄 (현재 또는 임시 스트링) |
1 2 3 4 5 6 7 8 9 10 11 |
0(A) 1(B) 2(AB) 3(AB) 2(C) 4(BA) 8(BAB) 6(ABC) 9(BABA) 8(BAB) 7(CB) |
1(B) 3(AB) 3(AB) 2(C) 4(BA) 8 6(ABC) 9(BABA) 8(BAB) 7(CB) 0(A) |
YES YES YES YES YES NO YES YES YES YES YES |
B A A C B B A B B C A |
AB/2 BA/4 ABA/5 ABC/6 CB/7 BAB/8 BABA/9 ABCB/10 BABAB/11 BABC/12 CBA/13 |
B (current) AB (current) AB (current) C (current) BA (current) BAB (temp string) ABC (current) BABA (current) BAB (current) CB (current) A (current) |