]> git.llucax.com Git - z.facultad/75.06/jacu.git/commitdiff
primera implementacion del decoder mtf, diganme si hace falta devolver algun otro...
authorNicolás Dimov <ndimov@gmail.com>
Mon, 21 Jun 2004 19:34:41 +0000 (19:34 +0000)
committerNicolás Dimov <ndimov@gmail.com>
Mon, 21 Jun 2004 19:34:41 +0000 (19:34 +0000)
src/mtf/main.c
src/mtf/mtf.c
src/mtf/mtf.h

index c240f73ee44cf4bc889c6d0c8b5ef070145422b8..3f6f174c404b7eb4486e08437782cf8963cc60da 100644 (file)
@@ -8,19 +8,26 @@
 int main(int argc, char *argv[] )
 {
        char buff[BUFFER_SIZE];
 int main(int argc, char *argv[] )
 {
        char buff[BUFFER_SIZE];
+       char *z, *dato;
        int *pos;
        int len;
        int *pos;
        int len;
-       int i;
+       int i, size;
+       
        len = fread(buff, 1, BUFFER_SIZE, stdin);
        buff[len] = '\0';
        len = fread(buff, 1, BUFFER_SIZE, stdin);
        buff[len] = '\0';
-
        pos = jacu_mtf(buff, len);
        pos = jacu_mtf(buff, len);
+       for(i=0; i<len; i++)
+               printf("%d ",pos[i]);/*putchar(pos[i]);*/
 
 
+       printf("\n-----Inversa del MTF-----\n");        
+       z = jacu_buscar_z(buff, len, &size);
+       dato = jacu_mtf_inv(z, pos, len);
        for(i=0; i<len; i++)
        for(i=0; i<len; i++)
-               putchar(pos[i]);
+               putchar(dato[i]);
 
 
+       free(dato);
+       free(z);
        free(pos);
 
        return 0;
 }
        free(pos);
 
        return 0;
 }
-
index 3113161b6dad6aade21452fa9646800a4f61106b..c906f47d159eb6aae67e4a3a99e01558f1d1f156 100644 (file)
@@ -32,6 +32,18 @@ int *jacu_mtf(char *datos, int len)
        return pos;
 }
 
        return pos;
 }
 
+char *jacu_mtf_inv(char *z, int *pos, int len)
+{
+       char *datos;
+       int i;
+       
+       datos = (char*)malloc(sizeof(char)*len);
+       for(i=0; i<len; i++){
+               datos[i] = z[pos[i]];
+               pop_front(z,pos[i]);
+       }
+       return datos;
+}
 
 char *jacu_buscar_z(char* datos, int len, int *size)
 {
 
 char *jacu_buscar_z(char* datos, int len, int *size)
 {
index b5963ea6496c4f33fee297e3216e1269b83a4d05..65820efc6d79d2c43e1a1cc83b3f3bc270ffbe6a 100644 (file)
@@ -5,6 +5,8 @@
 
 int *jacu_mtf(char *datos, int len);
 
 
 int *jacu_mtf(char *datos, int len);
 
+char *jacu_mtf_inv(char *z, int *pos, int len);
+
 char *jacu_buscar_z(char* datos, int len, int *size);
 
 #endif
 char *jacu_buscar_z(char* datos, int len, int *size);
 
 #endif