Bonjour,
Tout est dans le titre !
Dans mon cas j'ais une liste de mots et j'aimerai trouver celui qui
reviens le plus souvent.
Trouver l'element le plus frequent dans une liste
-
- Messages : 40
- Inscription : mar. 23/mars/2004 10:23
-
- Messages : 1500
- Inscription : jeu. 25/mars/2004 11:23
- Localisation : Sophia Antipolis (Nice)
- Contact :
Tu recrée un seconde liste où tu vas compter les éléments et les ajouter:
Lio 
Code : Tout sélectionner
Structure CountElement_String
nom.s
count.l
EndStructure
Procedure.s GetMostFrequentElement(lst.s())
NewList count.CountElement_String()
ForEach lst()
trouve = #False
ResetList(count())
While trouve = #False And NextElement(count())
If count()\nom = lst()
trouve = #True
EndIf
Wend
If trouve
count()\count + 1
Else
AddElement(count())
count()\nom = lst()
count()\count = 1
EndIf
Next
SortStructuredList(count(), 1, OffsetOf(CountElement_String\count), #PB_Sort_Long)
retour$ = ""
If CountList(count())
SelectElement(count(), 0)
retour$ = count()\nom
Debug count()\count
EndIf
ClearList(count())
ProcedureReturn retour$
EndProcedure
NewList elt.s()
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "salut"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "ca va ?"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "test"
AddElement(elt()) : elt() = "test2"
AddElement(elt()) : elt() = "test"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "test2"
AddElement(elt()) : elt() = "test"
Debug GetMostFrequentElement(elt())

Webmestre de Basic-univers
Participez à son extension: ajouter vos programmes et partagez vos codes !
Participez à son extension: ajouter vos programmes et partagez vos codes !
-
- Messages : 40
- Inscription : mar. 23/mars/2004 10:23
Une autre façcon de faire peut être un peu plus rapide pour de grosse liste d'éléments :
Code : Tout sélectionner
Structure Element
nbr.l
nom.s
EndStructure
NewList elt.s()
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "salut"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "ca va ?"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "test"
AddElement(elt()) : elt() = "test2"
AddElement(elt()) : elt() = "test"
AddElement(elt()) : elt() = "coucou"
AddElement(elt()) : elt() = "test2"
AddElement(elt()) : elt() = "test"
SortList(elt(),1)
NewList nbr.Element()
FirstElement(elt())
AddElement(nbr.Element())
nbr.Element()\nbr = 0
nbr.Element()\nom = elt()
ForEach elt()
If nbr.Element()\nom = elt()
nbr.Element()\nbr + 1
Else
AddElement(nbr.Element())
nbr.Element()\nom = elt()
nbr.Element()\nbr = 1
EndIf
Next
SortStructuredList(nbr.Element(),1,0,#PB_Sort_Long)
ForEach nbr.Element()
Debug nbr.Element()\nom+" "+Str(nbr.Element()\nbr)
Next
Denis
Bonne Jounée à tous
Bonne Jounée à tous
ou un arbre binaire
http://purebasic.developpez.com/
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.
Je ne réponds à aucune question technique en PV, utilisez le forum, il est fait pour ça, et la réponse peut profiter à tous.