IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Comment parcourir un tableau de listes ?


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Par défaut Comment parcourir un tableau de listes ?
    Bonjour,

    pouvez vous m'aider svp a ecrire un algorithme qui permet de parcourir un tableau de listes

    tab( A1,A2,A3,A4,..Ak)

    A1, A2,A3,A4,Ak sont des listes d'éléments.
    A1(A,B,C,D,........Z)
    A2(1,2,3,4,.........n)
    A3(a,b,c,d,..........z)
    A4(A1,A2,A3,A4,.......An)
    Ak(a1,a2,a3,a4,.......an)

    je veux parcourir toutes les listes et tester les éléments des listes.
    chaque élément est testé avec un appel d'une fonction. comment appeler cette fonction "k=f(p)" dans l'algo pour tester les éléments de la liste ?
    si k=0 j'élémine cet élément.
    sinon je contruit une nouvelle liste L1 avec le reste des éléments différents de 0.

    Merci



    je suis débutantes en algorithmique.

    Merci pour vos aides

  2. #2
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Bonjour,
    tu déjà posé cette question ici : Parcours de listes dans une liste.

    Les réponses seront sensiblement les mêmes :

    Tu écris une procédure qui filtre une liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure liste_filtrer( liste : type liste )
    début
      si non liste_est_vide(liste) alors
        courant : type élément = liste_tete(liste)
        faire
          suivant : type élément = liste_suivant(liste, courant)
          si f(p)=0 alors
            liste_effacer_element(liste, courant)
          fin si
          courant = suivant
        tant que suivant != NIL
      fin si
    fin
    Et tu écris une procédure qui parcourt le tableau de liste en appliquant le filtre à chaque liste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    procedure tableau_filtre( tableau : tableau de liste )
    début
      pour i de 1 à nombre_élément(tableau)
        liste_filtre(tableau[i])
    fin

    Rien de compliqué, l'algo c'est la transition entre le problème compris en français et le début du codage. La syntaxe est libre, même si elle est forcément orientée vers le langage cible. Le plus compliqué est d'exprimer ce que tu veux en français le reste vient tout seul.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Par défaut
    Merci picodev.

    est ce que le parcourt des liste dans une liste est le meme parcourt des listes dans un tableau?

    je veux poser quelques questions:

    pourquoi la première procédure qui filtre les listes ?
    qu'est ce que tu veux dire avec
    si non liste_est_vide(liste)?

    liste_effacer_element(liste, courant)?

    on peut pas faire des boucles imbriquée qui permettent de parcourir le tableau et les listes en meme temps?

    Merci

  4. #4
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Citation Envoyé par 080983 Voir le message
    Merci picodev.

    est ce que le parcourt des liste dans une liste est le meme parcourt des listes dans un tableau?
    Tu accède à un tableau en indiquant l'indice de l'élément que tu veux récupérer. Parcourir un tableau revient à faire varier l'indice du début (0 ou 1 suivant les langages) à la fin (taille-1 ou taille) du tableau.

    Les listes ne sont pas faites pour être accédées en plein milieu. Le parcours d'une liste se fait en accédant à la tête de liste puis en passant au suivant.

    Citation Envoyé par 080983 Voir le message
    je veux poser quelques questions:

    pourquoi la première procédure qui filtre les listes ?
    Plus tu auras des procédures courtes qui ne font qu'une chose plus tu écriras un algo clair.

    Citation Envoyé par 080983 Voir le message
    qu'est ce que tu veux dire avec
    si non liste_est_vide(liste)?
    Si la liste est vide il n'y a rien à faire, car une liste peut ne pas contenir d'éléments … Il te faut donc une fonction qui t'indique si la liste est vide ou non.

    Citation Envoyé par 080983 Voir le message
    liste_effacer_element(liste, courant)?
    Tu veux effacer un élément de la liste ? oui ? alors il te faut une fonction qui te le fasse

    Citation Envoyé par 080983 Voir le message
    on peut pas faire des boucles imbriquée qui permettent de parcourir le tableau et les listes en meme temps?

    Merci
    Si bien sûr mais ce sera moins clair, moins lisible, moins compréhensible.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    114
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 114
    Par défaut
    Merci pour tes réponses picodev!!


    pouvez vous me montrer ce que peut être le contenu des fonctions

    liste_effacer_element(liste, courant)?


    aussi pour liste_est_vide(liste)?



    Merci d'avance et je suis désolée!!

  6. #6
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    Ce sont typiquement des fonctions qui vont dépendre de l'implémentation et qu'on ne détaille jamais vraiment lors de l'algo.
    En quelque sorte, ce sont les fonctions dont tu vas avoir besoin qui vont influer quelle implémentation choisir.
    Une liste peut tout aussi bien être implémentée à base de pointeurs que par un simple tableau. Si un moment donné tu as besoin de trier la liste alors cela peut t'amener à orienter l'implémentation vers une liste sous forme de tableau …

Discussions similaires

  1. Comment Parcourir un tableau excel en VB6 ?
    Par Eausport dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 02/05/2011, 15h39
  2. parcourir un tableau de listes chainées
    Par étoile de mer dans le forum Débuter
    Réponses: 17
    Dernier message: 14/10/2008, 23h02
  3. Réponses: 17
    Dernier message: 19/07/2007, 08h38
  4. [C# 1.1] Comment parcourir un tableau byte[] ?
    Par fregolo52 dans le forum C#
    Réponses: 1
    Dernier message: 17/10/2006, 10h51
  5. Comment parcourir un tableau
    Par petitsims dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 27/01/2005, 14h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo