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 :

[DEBUTANT]ecrire d'une focntion qui permet de construire une arborecence


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    132
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 132
    Points : 47
    Points
    47
    Par défaut [DEBUTANT]ecrire d'une focntion qui permet de construire une arborecence
    bonjour,

    j'ai besoin d'aide pour l'ecriture de cette fonction

    supposez que on a des organisations (des societes ) qui comportent chacune une hierarchie

    la societe est constituee de plusieurs fillierers qui a leur tour sont constituees de plusieurs services donc on a en gros l'arborescence suivante

    societe
    ---filiere
    ------service

    a chaque niveau sont rattaches des emplues sachant que un employe peut etre rattache a la societe sans faire partie d'aucune filiere et d'autres font parti d'une filiere mais ne sont pas dans un service precis

    par exemple, un exempke concret

    societe 1
    employes
    ---filiere1
    ---employes
    ------service1
    ------employes
    ---filiere2
    ---filiere3
    ---employes
    ------service2
    ------employes


    et ainsi de suite pour chacune des societes , mais on suppose qu'il esiste des filieres par exemple dans lesquelles il n'y a aucun employe , on suppose que ca existe ou meme dans des services


    je dispose d'un tableau a deux dimensions me donnant pour chaque societe, service ou filiere un second tableau de tous les emplyes appartenant a ce service etc...mais si un emplye est dans le service A par exemple, on le mettra dans le tableau relatif au service A mais pas dans la filiere A ni dans la societe


    voici le tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    array (
     
    [societe 1]  =>  array (
                                  employe 1, 
                                  employe 2
                                  )
    [filiere1]  => array (
                               employe 4
                           )
     
    );

    je veux ecrire un algorithme qui permet de parcourir ce tableau a plat et de creer un autre tableau de maniere arborescente en rattachant a chaque niveau la liste de ses employes

    merci pour votre aide

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    dans ton exemple, qu'est-ce qui te fait dire que "societe 1" est une société, que "filiere1" est une filière ? Comment établis-tu le lien entre une filière et une société ?
    Est-ce qu'un employé peut appartenir à plusieurs services ?

  3. #3
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Points : 1 913
    Points
    1 913
    Par défaut Pourquoi ne pas utiliser les listes ?
    Pour les structures arborescentes, les listes styles 'LISP' sont certainement les structures de données les plus adaptées pour refléter une hiérarchie. Ainsi dans votre cas, le personnel de la société S pourrait âtre représenté ainsi.

    (S, A, B, C , (F1, D,(S11),(S12 D)), (F2 E))
    qui signifie: Les employés A, B,C ne sont rattachés à aucune filère.
    Il y a deux filières F1 et F2
    La filière F1 comporte un employé D rattaché à aucun service, elle comporte aussi deux services S11 et S12 , S11 est sans personnel et S12 contient seulement l'employé D etc...

    En résumé:
    Atomes au niveau (sauf tête de liste): employé de la société affectés à aucune filière ni à aucun service
    Atome de profondeur un (sauf têtes de liste): employé de la société dircetement affectés à une filière
    Atome de profondeur 2 (s t d l) amployé de la société affecté à un service au sein d'une filière.

Discussions similaires

  1. Code qui permet d'ouvrir une fenetre browser comme pour un input file
    Par Jim_Nastiq dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 20/06/2007, 16h11
  2. Réponses: 1
    Dernier message: 27/04/2007, 20h59
  3. Réponses: 3
    Dernier message: 10/04/2007, 20h57
  4. Réponses: 4
    Dernier message: 09/08/2006, 11h41
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 18h24

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