103 votes

Utilisations pratiques de différentes structures de données

Il y a beaucoup de discussions à propos des structures de données, mais je ne trouve pas une simple liste de structures de données et leur utilisation pratique. Je suis en train d'étudier pour un entretien et je pense que cela pourrait m'aider, avec beaucoup d'autres. Je suis à la recherche de quelque chose comme ceci:

Structure de données - Exemple/Utilisé pour

Table de hachage - rapide des données de recherche ...puis donner un exemple

Tableau - ...

Arbre binaire - ...

Si il y a une ressource de ce genre quelque part, s'il vous plaît laissez-moi savoir.

Merci!

EDIT: je veux dire que wikipédia est bon et tout, mais sur la plupart des pages ils n'ont pas fait la liste des utilisations pratiques. Je suis à la recherche de quelque chose de plus que cela.

100voto

MXMLLN Points 206

Il l'a trouvé dans un autre, la même question: applications Pratiques des structures de données

Table de hachage utilisé pour le transfert rapide des données pour la recherche de la table des symboles pour les compilateurs, indexation de bases de données, les caches,Unique de représentation des données.

Trie - dictionnaire, telle qu'on la trouve sur un téléphone mobile pour l'auto-complétion et la vérification orthographique.

Le suffixe de l'arbre - rapide de recherche plein texte utilisé dans la plupart des traitements de texte.

Pile - annuler\refaire l'opération de traitement de texte, de l'évaluation de l'Expression et de vérification de syntaxe, de nombreuses machines virtuelles comme JVM sont pile orienté.

Des files d'attente - le Transport et les opérations de recherche où les différentes entités sont stockés et conservés pour être traitées plus tard, c'est à dire la file d'attente effectue la la fonction de tampon.

Files d'attente de priorité - l'ordonnancement des processus dans le noyau

Les Arbres - Des Analyseurs, Système De Fichiers

Radix arbre - table de routage IP

BSP tree - infographie 3D

Graphiques - Liens/relations de sites de réseautage social, de Routage ,réseaux de communication, organisation des données, etc.

Tas - allocation Dynamique de la mémoire en lisp

C'est la réponse posté par RV Pradeep

Quelques autres, moins de liens utiles:

Les Applications ne sont listées que pour certaines structures de données

Pas application ciblée, par bon résumé et pertinentes

15voto

akh88 Points 26

Je suis dans le même bateau que vous. J'ai besoin d'étudier pour les entretiens techniques, mais la mémorisation d'une liste n'est pas vraiment utile. Si vous avez 3-4 heures à perdre, et qui veulent faire une analyse plus poussée, je vous recommandons de vérifier

mycodeschool
J'ai regardé sur Coursera et d'autres ressources, telles que les blogs et les manuels scolaires, mais je les trouve pas assez complet ou à l'autre bout du spectre, trop dense, avec des prérequis informatique terminologies.

Le mec dans la vidéo ont un tas de conférences sur des structures de données. Ne crains pas le ridicule de dessins, ou le léger accent. Vous avez besoin de comprendre non seulement ce qui structure de données pour sélectionner, mais certains autres points à considérer lorsque les gens pensent à des structures de données:

  • les avantages et les inconvénients de la commune de structures de données
  • pourquoi chaque structure de données existent
  • comment il fait le travail de la mémoire
  • des questions spécifiques ou d'exercices et de décider de la structure à utiliser pour un maximum d'efficacité
  • lucide Big 0 explication

J'ai aussi posté des notes sur github si vous êtes intéressé.

8voto

JavaUSer Points 53

Selon ma compréhension de la structure de données est de toutes les données résidant dans la mémoire de tout système électronique qui peuvent être gérées efficacement. Beaucoup de fois, c'est un jeu de mémoire ou plus rapide que l'accessibilité des données. En termes de mémoire encore une fois, il y a des compromis fait avec la gestion de données basé sur le coût pour la société de la fin du produit. Gérée efficacement, nous raconte comment mieux les données peuvent être accessibles selon l'exigence première de la fin du produit. C'est d'un très haut niveau de l'explication, mais des structures de données est un vaste sujets. La plupart des enquêteurs de la plongée dans des structures de données qu'ils peuvent se permettre de discuter dans les entretiens en fonction du temps dont il dispose, qui sont des listes chaînées et des sujets connexes.

Maintenant, ces types de données peuvent être divisées dans les primitifs, abstrait, composite, basé sur la façon dont ils sont logiquement construit et accessible.

  • structures de données primitifs sont des blocs de construction de base pour toutes les structures de données, ils ont une mémoire continue pour eux: boolean, char, int, float, double, string.
  • composite structures de données sont des structures de données qui sont composées de plus d'une primitive de données types.class, de la structure, de l'union, array/d'enregistrement.
  • résumé des types de données composites types de données qui ont accès de manière efficace ce qui s'appelle un algorithme. En fonction de la manière dont les données sont accessibles structures de données sont divisées en linéaire et non linéaire, les types de données. Les listes chaînées, piles, files d'attente, etc sont linéaires types de données. des tas, des arbres binaires, et les tables de hachage etc sont non linéaires types de données.

J'espère que cela vous aide à plonger dans.

6voto

dmeister Points 11529

L'excellent livre "la Conception d'un Algorithme Manuel" par Skienna contient une énorme dépôt d'Algorithmes et structures de Données.

Pour des tonnes de problèmes, des structures de données et algorithme sont décrits, par rapport, et traite de l'utilisation pratique. L'auteur fournit également des références à des implémentations et les documents de recherche originaux.

Le livre est très bien pour l'avoir sur votre bureau si vous recherchez la meilleure structure de données pour votre problème à résoudre. Il est également très utile pour la préparation à l'entretien.

Une autre grande ressource est le NIST Dictionnaire de structures de Données et algorithmes.

-2voto

Zigu Points 586

Je pense qu'il est plus judicieux d'étudier simplement les caractéristiques des structures de données.

En fonction du scénario que votre intervieweur vous a proposé, choisissez celui qui convient.

Je dis des mensonges aux personnes qui prétendent que l'ingénierie logicielle et la programmation ne sont pas créatives.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X