cours sur les structures d associations
59 pages
Français

cours sur les structures d'associations

Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres
59 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 — 04 Luc MarangetAssociationsLuc.Maranget@inria.frhttp://www.enseignement.polytechnique.fr/profs/informatique/Luc.Maranget/421/-2-PlanA Table d’association/(Java : interface)B Table de hachage/(Java : biblioth`eque)C Bonus Java-3-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.-4-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).-5-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.-6-ApplicationOn veut produire une statistique des mots d’un texte.◮ Voici par ...

Sujets

Informations

Publié par
Nombre de lectures 33
Langue Français

Extrait

-1-
INF
421
— 04
Luc
Associations
Maranget
Luc.Maranget@inria.fr http://www.enseignement.polytechnique.fr/profs/ informatique/Luc.Maranget/421/
-2-
A
B
C
Table
Table
Plan
dassociation/(Java
de hachage/(Java
Bonus Java
:
:
interface)
biblioth`eque)
-3-
Les tables d’associations
Quest-cequecest?Desassociationsdenimportequoia` n’importe quoi.
Comment¸camarche?Troisimple´mentations.
Avec des listes.
Avec notre table de hachage.
Avec lestables de hachageeqh`otli.uebabidle
-4-
La table d’association
Soit desinformations, munies d’unecle. ´
tienid´eclLamrtaoi.nedniof
r´enom)Nom(etp´tepe´l´mundoreanlainunehonsda e re.
trMaeulicsoldat.
uNidore´mricummatonlatiucele´ihlsed,naviechesrd cartes grises.
noitamrieedtniueenniofanslecaso`ulacl´nOlpesdeca unique (par ex. fichier des cartes grises).
-5-
La table d’association
Ensembledynamiqueormainfd.sitno
Typeabstraitdedonn´ees,d´eniparlesope´rations.
rTuoevlrinformationassoci`ee´enuae´lcnnode.´e
llaeuoevaiitsscotreuonen´eetneclenujoAerutenun information.
ruretiRede´eclnessan´icomrofoitaecavinltalae(blee).
Etpluspr´ecis´ement(unicite´descle´s)
fnienua`je´detsiexilSlstadenaca´l`elaci´eassotionormaelba, alors la nouvelle information remplace l’ancienne.
t´ouajsttala`aeeossaelleenoitaiclb.eSinon,unenouv
-6-
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.
tsiteuqifsedqe´rncuedeesotsmelsdStaedstmoe(islailsearaM taillejam,4.)´eesnlevleseuscu
% java Freq marseillaise.txt nous: 10 vous: 8 franc¸ais:7 etc.
-7-
En trois etapes. ´
Conception de
1.Lireletextemot-`a-mot.
2. Compter les occurrences des mots.
Freq
3.Produireunbelachage(parfre´quencesd´ecroissantes).
Pluspr´ecis´ement.
´ 1. Proceder selon le principe duReader.
2.Parunetabledassociationdesmotsauxcomptes.(cle´=un motinformation = un compte).
3.Paruntria`lan.
-8-
Lecture des mots, tri
Onsupposedonne´s:
Une classe des objetslecteur de mots(WordReader). ConstructeurWordReader(String name)epuorcr´eerl lecteur des mots d’un fichier de nomname. etM´ohedString read(), renvoie le mot suivant (ounull quand c’est fini).
Un tri des paires, mot×ton(etpmsee´cowc). Selon l’ordre total :
(w1c1)<(w2c2) m
(c1> c2)(c1=c2w1< w2)
-9-
D´enitionpr´ecisedenotretable
Une table est un objetAssoc une table d’association des. C’est mots (String) auxint.
etM´dehointget(String w)ervniole,ssoci´e`aecompteaw.
Ou bien 0 siwn’est pas dans la table.
eodMth´evoidput(String w,intc), associe le comptecau motw.
Spe´cicationenJava,paruneinterfacemmoc(ne´tee.)
interfaceAssoc{ /*Cr´eer/remplacerlassociationkeyval */ voidput(String key,intval) ; /*Trouverlentierassoci´e`akey,ouze´ro.*/ intget(String key) ; }
-10-
Code de
main
classFreq{ . . . static voidcountFile(String name,Assoc t) { WordReader wr=newerWordRead(name) ; count(wr,t) ; wr.close() ;lp(erpsunele´rtFe//errm)poer Sort.println(t) ;// Affichage tri´ e }
}
public static voidmain(String[]arg) { countFile(arg[0],. . .) }
-11-
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.LotrewoesaC() ; t.put(word,t.get(word)+1) ; } } }
Remarquer :Assocn’est pas une classe, mais on peut l’utiliser commeuntype,celuidudeuxi`emeargumentdecount.
  • Univers Univers
  • Ebooks Ebooks
  • Livres audio Livres audio
  • Presse Presse
  • Podcasts Podcasts
  • BD BD
  • Documents Documents