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 :

Structure de données


Sujet :

Algorithmes et structures de données

  1. #1
    Membre confirmé
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Par défaut Structure de données
    Bonjour,


    Je suis actuellement en train de préparer un document de synthèse sur les structures de données.
    C'est ma façon de faire pour apprendre.
    Dans un premier temps, j'essaye de lister toutes les structures de données

    Je vais mettre ci-dessous une liste de structure de données, si vous pouviez m'indiquer si j'en ai oublié ou si j'ai fait des erreurs. Je vous en remercie grandement.

    Structure Séquentielle
    1°) Tableaux
    2°) Fichier Séquentiel
    3°) Liste chainée (Doublement chainée, circulaire, etc...)
    4°) Pile et File

    Structure Arborescente
    1°) Arbre binaire
    2°) Arbre N-aires
    3°) Arbres H-équilibrés
    4°) Arbres balancés.

    Autres
    1°) Le hachage (est-ce vraiment une structure de donnée ?)

    Je vous remercie par avance de vos réponses.

  2. #2
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    3°) Liste chainée (Doublement chainée, circulaire, etc...)
    Pourquoi ne pas parler des listes en général. Et seulement après parler d'implémentation.

    J'aurais personnellement fait comme ça (mais c'est personnel) :

    Pour la partie : structure séquencielle

    Type abstrait :

    Type ensemble
    Type tableau
    Type structure
    Type pile
    Type file
    Type liste

    Edit Par contre, la définition d'un type Fichier est une bonne idée

    Implémentation :

    Les implémentations possibles (bon, il y a un problème qui est que le type ensemble peut s'implémenter par un tas, qui n'a pas encore été précisé)

    par exemple la liste est implémentable par une liste chaînée
    une pile peut être implementée par une liste ou par un tableau.


    Mais c'est cool Bon courage

  3. #3
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Si j'ai bonne mémoire, la description des différentes structures de données dans wikipedia n'est pas mauvaise.

  4. #4
    Membre confirmé
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Par défaut
    Effectivement tu as raison. Je confonds description de la structure de donnée et implémentation.
    Donc le type pile je ne vais pas le mettre dans les structures de donnée puisque comme tu le dis, ce type peut-être implanté en tableau ou en liste chainé.

    Pour les liste je vais parler des listes en général et pas la façon de les implémenter.

    Par contre, je ne vois pas ce qu'est le type ensemble ?

    Pour Jean-Marc.Bourguet,

    Oui c'est fort possible que wikipédia donne une trés bonne définition des différentes structures de données mais je souhaite me pencher dessus et y réflechir (c'est de cette façon que j'apprends) plutôt que de lire un texte pondu par quelqu'un (façon passif). cela n'empêche que je peux m'y inspirer comme même


    Je vais essayer de travailler dessus.
    A+ tard.

  5. #5
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Donc le type pile je ne vais pas le mettre dans les structures de donnée puisque comme tu le dis, ce type peut-être implanté en tableau ou en liste chainé.
    Il peut, mais c'est un type abstrait de donnée. Tu peux le définir comme tel.
    (par exemple : regarde le dernier post de : http://www.developpez.net/forums/sho...d.php?t=193046)

  6. #6
    Membre confirmé
    Homme Profil pro
    Analyste
    Inscrit en
    Août 2003
    Messages
    85
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Analyste
    Secteur : Services de proximité

    Informations forums :
    Inscription : Août 2003
    Messages : 85
    Par défaut
    Voilà un premier jet :


    Ensemble quelconque
    Ajouter
    O(1) commentaire -> ajout en début ou fin de liste suivant la structure

    Recherche commentaire -> On peut imaginer un algo améliorant la recherche en déplaçant l'élément trouvé en le rapprochant de la tête de liste.
    Au mieux O(1)
    Au pire O(n)
    En moy O(n/2)

    Liste contigue (trié)
    Ajouter et supprimer commentaire -> Gourmand en déplacement
    Au mieux O(1) commentaire -> en fin de liste
    Au pire O(n) commentaire -> en début de liste
    En moy O(n/2)

    Recherche (dichotomique)
    O(log2n)

    Arbre binaire
    Ajouter commentaire -> deux possibilités. A la racine ou aux feuilles.
    Que ce soit à la racine ou arbre même complexité.
    En moy O(PCE(A))
    Au pire O(h(A))

    Suppression
    En moy O(PC(A))
    Au pire O(h(A))


    Voilà pour le moment. Je n'ai pas encore terminé et il faut que je décrive ce qu'est PC(A), h(A) etc...

    Je vous donnerais la suite plus.
    Si vous avez des remarques

    A +

  7. #7
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Par défaut
    Citation Envoyé par startout
    Ensemble quelconque
    Ajouter
    O(1) commentaire -> ajout en début ou fin de liste suivant la structure

    Je ne suis pas d'accord, un ensemble n'admet pas deux même éléments...

    Ici, Ajouter({1,2,3},1) va renvoyer {1,1,2,3} alors que ça ne devrait pas.

    Pour l'ensemble :

    Au mieux O(1)
    Au pire O(n)
    En moy O(n/2)
    Il y a des implémentations plus efficaces (notamment en utilisant un tas, l'ensemble est trié et permet d'effectuer une recherche de manière plus rapide).

    Cela dit, c'est plus complexe à mettre en oeuvre, ça dépend des performances que tu souhaites avoir.

  8. #8
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    dans les structures de données fortement utilisées, on retrouve aussi les graphes et les versions triées des structures déjà citées ici.
    de plus tu peux t'inspirer de la liste des conteneurs de base de la STL c++

  9. #9
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Pour la liste, je ne suis pas sûr d'être d'accord pour la complexité... Pour est-ce pire d'insérer en début qu'à la fin ? Pourquoi est-ce coûteux en déplacements ??

Discussions similaires

  1. Comment créer une structure de donnée dynamiquement ?
    Par Beaunico dans le forum Langage
    Réponses: 9
    Dernier message: 24/01/2006, 09h34
  2. Aide pour diagramme de structure des données
    Par DeezerD dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 04/12/2004, 19h10
  3. Méta-Programmation - [ structures de données ]
    Par Dam)rpgheaven dans le forum C++
    Réponses: 3
    Dernier message: 03/12/2004, 19h38
  4. Structure des données en retour d'un DBExtract ?
    Par mikouts dans le forum XMLRAD
    Réponses: 4
    Dernier message: 24/01/2003, 15h15
  5. Structure de données de type "RECORD"
    Par chaours dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 30/09/2002, 17h10

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