Bonjour,
Merci d'avance.
Je sais faire la simulation mais ça coince pour l'algo.
Soit L une liste chaînée, de Ville de Bourmerdès, dont le pointeur vers la tête est T, ayant dans chaque noeud, le nom de la ville, la superficie de la ville et le nombre d'habitants dans la ville.
Écrire une fonction ou procedure qui permet de récupérer toutes les villes ayant plus (strictement) de 10.000 habitants.
bonjour
peux-tu nous en dire plus sur la structure des données de chaque nœud ?
(si tu peux nous montrer qq éléments du début de cette liste...)
sinon, pour la démarche :
- tu vas lire la liste chainée L séquentiellement, à partir de la tête,
jusqu'à ce que le pointeur rencontre None (fin de liste)
- pour chaque élément parcouru (nœud), tu testes la donnée qui t'intéresse (le nb d'habitants), et tu complètes une liste "ville" le cas échant.
j'espère avoir répondu à ta demande.
PROCEDURE RECUPERER_VILLE ((ES) tete : liste)
VARIABLES
R ; P : Liste
nbh : Entier
DEBUT
R <-- NIL
P <-- tete
TANT QUE P^.suivant <> NIL FAIRE
P <-- P^.suivant
SI P^.nbh = 10.000 ALORS
P^.suivant <-- R
R <-- P^.suivant
FIN SI
FIN TANT QUE
FIN
sans les commentaires, j'avoue ne pas tout comprendre dans ton algo...
par exemple ceci : R <-- NIL ---- ??
et ceci :
P^.suivant <-- R
R <-- P^.suivant ---- quel est le but de ces 2 instructions consécutives ?
à quel moment tu récupères le nom de la ville ?
une certitude : le test est >10000 et non pas =10000
coup de pouce :
un exemple sur la liste chainée (chainage simple) ma_liste, qui contient les éléments suivants :
['ville_1', 30, 20000]
['ville_2', 10, 1500]
['ville_3', 25, 17000]
class Node:
def __init__(liste, donnee=None):
liste.donnee = donnee
liste.pointeur_suivant = None
class listechainee:
def __init__(liste):
liste.tete = None
def recup_ville(liste):
ville=[]
pointeur = liste.tete
while pointeur is not None:
if pointeur.donnee[2] > 10000:
ville.append(pointeur.donnee[0])
pointeur = pointeur.pointeur_suivant
return ville
# C.P.
ma_liste = listechainee()
ma_liste.tete = Node(["ville_1", 30, 20000])
element_2 = Node(["ville_2", 10, 1500])
element_3 = Node(["ville_3", 25, 17000])
ma_liste.tete.pointeur_suivant = element_2
element_2.pointeur_suivant = element_3
print( ma_liste.recup_ville())
['ville_1', 'ville_3']
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :