Ce document a été produit par HEVEA.
Votre browser peut avoir a être configuré pour afficher correctement
certains symboles.
Reportez-vous à la documentation d'HEVEA.
void f(int **i) { (*(*++i)--)++; } void main(void) { int i[] = {0, 2, 4, 6}, *p[2] = {i, i+2}; int j; f(p); for (j=0; j < 4; j++) printf("%d ", *(i + j)); printf("\n%d %d\n", **p, **(p + 1)); }
char *(*(*d1)[])(int);
int (*d2(FILE *(*d3)(int)))(FILE *)
;
vocable
de structures
contenant un mot suivi de sa fréquence d'apparition:
La fréquence d'apparition#define NBWORDS 60000 typedef struct entry { char *word; int freq; } entry, vocable[NBWORDS];
freq
est un entier représentant une
fréquence relative, NBWORDS
est le nombre de mots du
dictionnaire. Les mots sont classés par longueur dans le tableau
vocable
, et pour une longueur de mot donnée, ils sont classés
dans l'ordre lexicographique. Pour accélérer la recherche, un tableau
lstart
indique le début des zones de vocable
correspondant à des mots de longueur donnée, ainsi que le nombre de
mots de cette longueur. Ce tableau comporte MAXLENGTH
entrées.
La figure 1 présente schématiquement la structure de données
complète.
lengthstart
pour un élément du tableau
lstart
, et donnez la définition de ce tableau.
qui retourne un pointeur sur la zone des mots dont la longueur correspond à la séquence de touchesentry *searchstart(char *seq, lengthstart lstart[]) ;
seq
. La séquence de
touches seq
est représentée par une chaîne de caractères
contenant la suite des chiffres de la séquence (¨1312¨
par
exemple).
wordlist
pour représenter une liste de
pointeurs sur des mots associés à leur fréquence.
qui retourneint match(char *seq, char *word) ;
1
si le mot word
correspond à la
séquence de touches seq
, et 0
sinon.
qui retourne la liste des mots possibles (avec leur fréquence) correspondant à la séquencewordlist searchword(char *seq) ;
seq
. Pour minimiser l'espace
utilisé, cette liste pointera directement dans le tableau
vocable
.
words
utilisé pour stocker l'ensemble des mots
possibles associés à une séquence de touches est le suivant :
typedef struct wordarray { int number; char **array; } wordarray, *words;
number
est le nombre de mots dans l'ensemble, et
array
est un tableau de chaînes de caractères contenant
chacune un mot. Ecrire la fonction
qui trie la liste de mots par ordre décroissant de leur fréquence d'apparition, et retourne l'ensemble trié des mots possibles. Le tableau de chaînes retourné pointera directement dans le dictionnaire (il n'y a pas copie des mots). De plus cette fonction détruira la listewords sortword(wordlist list) ;
list
de mots possibles.
Ce document a été traduit de LATEX par HEVEA.