]> git.llucax.com Git - z.facultad/75.06/jacu.git/blobdiff - src/mtf/mtf.c
Algunas mejoras, comentarios y arreglos
[z.facultad/75.06/jacu.git] / src / mtf / mtf.c
index 3113161b6dad6aade21452fa9646800a4f61106b..e88981736638ecd4d66084d4f2523931aa05925b 100644 (file)
@@ -16,13 +16,13 @@ void print_z(char *z, int len)
        fprintf(stderr, "\n");
 }
 
        fprintf(stderr, "\n");
 }
 
-int *jacu_mtf(char *datos, int len)
+char *jacu_mtf(char *datos, int len)
 {
        char *z;
        int *pos;
        int i, size;
        
 {
        char *z;
        int *pos;
        int i, size;
        
-       pos = (int*)malloc(len*sizeof(int));
+       pos = (char *)malloc(len*sizeof(char));
        z = jacu_buscar_z(datos, len, &size);
        for(i=0; i<len; i++){
                pos[i] = get_pos(z, size, datos[i]);
        z = jacu_buscar_z(datos, len, &size);
        for(i=0; i<len; i++){
                pos[i] = get_pos(z, size, datos[i]);
@@ -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)
 {