int strcmp(const char*s, const char*t) { while(*s==*t) if(*s=='\0') return 0; if(*s < *t) return -1; return 1; }
p
f), effectue le "partage" des suffixes considérés selon le pivot (en modifiant Pos) et produit le plus petit indice k (d
k
f) pour lequel y[Pos[k]...n-1] = zvoid echanger(char **s, char **t) { char *tmp; tmp = *s; *s = *t; *t = tmp; } int Partage(int i,int f,int d) { char *Pos; int g=i,d=j; echanger(&Pos[p],&Pos[f]); char pivot = Pos[f]; do { while(Pos[g]< pivot) g=g+1; while(d >= g && Pos[d] >=pivot) d=d-1; if(g < d) { echanger(&Pos[g],&Pos[d]); g=g+1; d=d-1; } }while(g>d) return g; }
typedef struct noeud { int val; struct noeud *g,d; }Noeud ; typedef Noeud *Arbre; void Str(Arbre A) { printf('0'); while(A->g->g !=NULL) { printf('0'); A = A->g; } printf('1'); while(A->d->d !=NULL) { printf('0'); A = A->d; } printf('1'); }
/* Comparaison des chaines s et t comme suit : s>t: >0 s==t: 0 s<t: <0 */ int strcmp(const char *s, const char *t) { if (s == t) return (0); while (*s == *t++) if (*s++ == '\0') return (0); return (*(unsigned char *)s - *(unsigned char *)--t); }
y[]="maison"
pos[]={1,2,0,5,4}
"ison"
"maison"
"n"
"on"
"son"
C'aurait été plus simple de tout faire soi-même et non de passer par cette fonction "Partage".
|
Posté par N_comme_Nul
Ta notion de "suffixe", c'est en fait la notion de "sous-chaîne" ?
Dis-moi si je me trompe : si l'on a Code:
alors on devra trouver Code:
ce qui correspond à "aison" "ison" "maison" "n" "on" "son"L'énoncé de l'exercice 1 est pénible ! Si je faisais de l'info avec ce genre d'écriture ça serait C'aurait été plus simple de tout faire soi-même et non de passer par cette fonction "Partage". |
|
Posté par N_comme_Nul
Ta notion de "suffixe", c'est en fait la notion de "sous-chaîne" ?
|
|
Posté par N_comme_Nul
Salut !
Cela fait ( au moins ) sur 3 fora que tu postes ces exercices. Personne, apparemment, ne te répond (et pour l'implémentation du strcmp, franchement, un p'tit coup de google et on en parlait plus, c'est ce que j'ai fait d'ailleurs dans un précédent post). Je pense deviner pourquoi : tu mets des tartines d'énoncés sans rien montrer de ce que TOI tu as fait. Un peu de courage ! Ne laisse pas les autres faire tes exercices ... sinon à quoi bon, tu ne progresseras jamais. Georg. |
-