Bom dia, será que alguém poderia me ajudar com um algoritmo?
estou no inicio do curso de ciencia da computação e o professor passou esse algoritimo lempel ziv
pra tantar passar pra qualquer linguagem, mas eu nao entendo muito bem então to com dificuldade pra pesquisar...
na verdade nem sei direito como funciona isso, como passaria pra linguagem C por exemplo...
o exercicio é esse:
Primeiro passo: inicializar uma tabela de códigos com todos os
caracteres existentes na string que pretendemos compactar
A codificação se inicia definindo a seqüência de símbolos corrente S
como o primeiro símbolo a codificar
1. Se não existem mais símbolos para codificar, dê como saída o
código de S. Em caso contrário,
2. Pegue o próximo símbolo P e concatene a S, obtendo a nova
seqüência SP
3. Se SP já estiver no dicionário, faça S = SP e volte para o passo 1.
Em caso contrário,
4. Dê como saída o código de S
5. Adicione SP ao dicionário, se ainda houver espaço
6. Faça S = P e volte para o passo
Compressão da cadeia de caracteres ABACABA
Tabela atual:
–
#0 = A, #1 = B, #2 = C, #3 = AB, #4 = BA, #5 = AC
Caracter C (existe na tabela)
–
representamos ABAC por #0#1#0#2
–
CA recebe #6
Caracter AB (existe na tabela)
–
representamos ABACAB por #0#1#0#2#3
–
ABA recebe #7
Caracter A (existe na tabela)
–
representamos ABACABA por #0 #1 #0 #2 #3 #0
Se alguém puder ajudar eu agradeço muito ^^