Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Module valDistinctes (arbre : ArbreNaire<chaine>, listCh (OUT) : ListeChainee<chaine>) -> entier
- tmp : chaine
- i, max : entiers
- max <- 0
- noeud : NoeudNaire<chaine>
- file <- nouvelle FileListe< NoeudNaire <chaine> > : FileListe< NoeudNaire <chaine> >
- list <- nouvelle Liste<chaine> : Liste<chaine>
- listCh <- nouvelle ListeChainee<chaine> : ListeChainee<chaine>
- map <- nouvelle TableHachageAvecAdressageOuvert <chaine, entier> : TableHachageAvecAdressageOuvert <chaine, entier>
- Si (arbre.getRacine() != rien) alors
- file.put(arbre.getRacine())
- Fin si
- Tant que Non file.estVide() faire
- tmp <- (file.get()).getValeur()
- Si (map.containsKey(tmp)) alors
- map.put(tmp, (remove(tmp)+1))
- Sinon
- map.put(tmp, 1)
- Fin si
- noeud <- file.remove()
- Pour i de 1 à noeud.getNbFils() faire
- Si (noeud.getFils(i) != rien) alors
- file.put(noeud.getFils(i))
- Fin si
- Fin pour
- Fin Tant que
- list <- map.keys()
- Pour i de 1 à list.size() faire
- Si (max < map.get(list.get(i))) alors
- max <- map.get(list.get(i))
- vider(listCh)
- listCh.insererTete(list.get(i))
- Sinon
- Si (max = map.get(list.get(i)) alors
- listCh.insererTete(list.get(i))
- Fin si
- Fin si
- Fin pour
- retourner list.size()
- Fin module
- Module vider (listCh (IN-OUT) : ListeChainee<chaine>)
- i : entier
- Pour i de 1 à listCh.taille() faire
- listCh.supprimerTete()
- Fin pour
- Fin module
Add Comment
Please, Sign In to add comment