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 : 76
    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.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

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, 15h11
  2. Réponses: 1
    Dernier message: 27/04/2007, 19h59
  3. Réponses: 3
    Dernier message: 10/04/2007, 19h57
  4. Réponses: 4
    Dernier message: 09/08/2006, 10h41
  5. cherche une fonction qui permet de faire une recherche
    Par vbcasimir dans le forum Langage
    Réponses: 7
    Dernier message: 01/09/2005, 17h24

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