cours sur les tables d association
55 pages
Français

cours sur les tables d'association

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
55 pages
Français
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

-1-INF 421 Luc MarangetAssociationsLuc.Maranget@inria.frhttp://www.enseignement.polytechnique.fr/profs/informatique/Luc.Maranget/421/-2-Les tables d’associations◮ Qu’est-ce que c’est ? Des associations de n’importe quoi a`n’importe quoi.◮ Comment c¸a marche ? Trois impl´ementations.⊲ Avec des listes.⊲ Avec notre table de hachage.⊲ Avec les tables de hachage de la biblioth`eque.-3-La table d’associationSoit des ( informations ), munies d’une ( cl´e )).◮ La cl´e identifie d’information.⊲ Nom (et pr´enom)→ num´ero de t´el´ephone dans l’annuaire.⊲ Matricule→ soldat.⊲ Num´ero d’immatriculation→ v´ehicule, dans le fichier descartes grises.◮ On se place dans le cas ou` la cl´e identifie une informationunique (par ex. fichier des cartes grises).-4-La table d’associationEnsemble dynamique d’informations.Type abstrait de donn´ees, d´efini par les op´erations.◮ Trouver l’information associ´ee `a une cl´e donn´ee.◮ Ajouter une nouvelle association entre une cl´e et uneinformation.◮ Retirer une cl´e de la table (avec l’information associ´ee).Et plus pr´ecis´ement (unicit´e des cl´es)◮ S’il existe d´ej`a une information associ´ee `a la cl´e dans la table,alors la nouvelle information remplace l’ancienne.◮ Sinon, une nouvelle association est ajout´ee `a la table.-5-ApplicationOn veut produire une statistique des mots d’un texte.◮ Voici par exemple un texte bien connu.% cat marseillaise.txtAllons ! Enfants de la Patrie !Le jour de gloire est arrive´ ...

Sujets

Informations

Publié par
Nombre de lectures 52
Langue Français

Extrait

-1-
INF
421
Luc
Associations
Maranget
Luc.Maranget@inria.fr http://www.enseignement.polytechnique.fr/profs/ informatique/Luc.Maranget/421/
-2-
Les tables d’associations
Quest-cequecest?Desassociationsdenimportequoi`a n’importe quoi.
Comme¸simpl´ementations. nt ca marche ? Troi
Avec des listes.
Avec notre table de hachage.
Avec lestables de hachagebabidle`hqeilto.eu
-3-
La table d’association
Soit desinformations, munies d’uneecl´.
maornfi.onti´lieLcaideedtn
Noe´rpte(m)monmun´erodet´el´ephondenalsannauri.e
atMcurilesoldat.
oinlutartciNe´mudorammisedre´vhechinslee,daicul cartes grises.
nsdacelaepnsOnoitallce´dielacosu`einformaentieun unique (par ex. fichier des cartes grises).
-4-
La table d’association
Ensembledynamiqueindsn.taoiofmr
Typeabstraitdedonnees,d´eniparlesop´erations. ´
`l´esdsooncni´´eeeemrtaoianrelniofTuvro a une c .
Ajouteleelsaosurenonvurentecunatcineioee´lenut information.
unecirerReta(evbaelleta´ldeasontimaornficl.)ee´icos
Etplusp´ie´ment(unicit´edescl´es) rec s
`´ie´adallctablnslae,Selitsixe´deua`jinnermfoioatssna oc ee a alors la nouvelle information remplace l’ancienne.
ssaeaicouonellevnoSiunn,.latabaeljout´ee`tionesta
-5-
Application
On veut produire une statistique des mots d’un texte.
Voici par exemple un texte bien connu.
% cat marseillaise.txt Allons ! Enfants de la Patrie ! Lejourdegloireestarriv´e! etc.
sdotaMelesncsmde(esistomesraalliStatifs´rqeeutsqieueded taillejasu4m,senlculees).ev´e
% java Freq marseillaise.txt nous: 10 vous: 8 franc¸ais:7 etc.
-6-
Entrois´etapes.
Conception de
1. Lire le texte mot ` mot -a- .
2. Compter les occurences des mots.
Freq
3.Produireunbelachage(parfr´equencesde´croisantes).
Pluspr´ecis´ement.
1.Proce´derselonleprincipeduReader.
2.Parunetabledassociationdesmotsauxcomptes.(cle´=un motinformation = un compte).
3.Paruntri`alan.
-7-
Lecture des mots, tri
Onsupposedonne´s:
Une classe des objetslecteur de mots(WordReader).
ConstructeurWordReader(String name)euop´rcrlree lecteur des mots d’un fichier de nomname.
etM´dehoString read(), renvoie le mot suivant (ounull quand c’est fini).
Un tri des paires, mot×e´setempot(ncowc l’ordre). Selon total :
(w1c1)<(w2c2) m
(c1> c2)(c1=c2w1< w2)
-8-
D´enitionpre´cisedenotretable
Une table est un objetAssoc une table d’association des. C’est mots (String) auxint.
deteoh´Mintget(String w)eassoci´e`aer,iovnceletpmow.
Ou bien 0 siwn’est pas dans la table.
e´Meodthvoidput(String w,intc), associe le comptecau motw.
Spe´cicationenJava,paruneinterfacemmnetee).(oc ´
interfaceAssoc{ /*Cr´eer/remplacerlassociationkeyval */ voidput(String key,intval) ; /*Trouverlentierassocie´akey,ouze´ro.*/ ` intget(String key) ; }
-9-
Code de
main
classFreq{ . . . static voidcountFile(String name,Assoc t) { WordReader wr=newWordReader(name) ; count(wr,t) ; wr.close() ;meer/F/tn´rlreulpseep(e)ropr Sort.println(t) ;e´teirchagAffi// }
}
public static voidmain(String[]arg) { countFile(arg[0],. . .) }
-10-
Code decount static voidcount(WordReader in,Assoc t) { for(String word=in.read() ; word!=null; word=in.read()) { i f(word.length() >= 4) { word=word.weLotoeasrC() ; t.put(word,t.get(word)+1) ; } } }
Remarquer :Assocn’est pas une classe, mais on peut l’utiliser commeuntype,celuidudeuxie`meargumentdecount.
-11-
Les listes d’associations
Lafa¸conlaplussimpledassocieruncompte`aunmot?
Une liste de pairesStringint. classAList{ privateString word; private intcount; privateAList next;
AList(String word,intcount,AList next) { this.word=word;this.count=count;this.next=next; } }
Attention
iectet´snsuaoomssuunau`usaolqpetseu.ppcomOpn
blevLataertseeditnese´rp..arep´e. null.
blevLataertseeditnese´rp..arep´e.
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents