Quels problèmes peuvent être résolus, ou plus facilement abordé, en utilisant des graphiques et des arbres?

voix
10

Quels sont les problèmes les plus courants qui peuvent être résolus avec ces deux structures de données?

Il serait bon pour moi d'avoir aussi des recommandations sur les livres que:

  • Mettre en œuvre les structures
  • Mettre en œuvre et expliquer le raisonnement des algorithmes qui les utilisent
Créé 06/08/2008 à 01:56
source utilisateur
Dans d'autres langues...                            


10 réponses

voix
16

La première chose que je pense quand je lis cette question est: quels types de choses utiliser des graphiques / arbres? et je pense en arrière à la façon dont je pourrais les utiliser.

Par exemple, prenez deux utilisations courantes d'un arbre:

  • le DOM
  • Systèmes de fichiers

Le DOM et XML pour cette matière, ressemblent à des structures d'arbres.
alt texte

Il est logique aussi. Il est logique en raison de la façon dont ces données doivent être organisées . Un système de fichiers aussi. Sur un système UNIX , il y a un nœud racine et de branchement en bas. Lorsque vous montez un nouveau périphérique, vous l' attacher sur l'arbre.

Vous devez également vous demander: les données ne tombent dans ce type de structure? Créer des structures de données qui ont du sens au problème et le reste suivra.

En ce qui est plus facile, je pense que c'est relative. Êtes-vous bien avec les fonctions récursives à travers un arbre / graphique? Que faire si vous avez besoin d'équilibrer l'arbre?

Pensez à un programme qui permet de résoudre un puzzle de recherche de mot. Vous pouvez tracer toutes les lettres de la recherche de mot dans un graphique et vérifier les nœuds environnants pour voir si cette chaîne est correspondant à l'un des mots. Mais ne pourriez-vous faire la même chose avec un seul tableau? Tout ce que vous devez faire est de déplacer un index pour vérifier des lettres à gauche et à droite, et par la largeur de vérifier ci-dessus et en dessous des lettres. Pour résoudre ce problème avec un graphique n'est pas difficile, mais il peut créer beaucoup de travail supplémentaire et la difficulté si vous n'êtes pas à l'aise avec eux en utilisant - bien sûr qui ne devrait pas vous décourager de le faire, surtout si vous apprenez sur leur.

J'espère que vous aide à penser à ces structures. En ce qui concerne une recommandation de livre, je dois aller avec Introduction aux algorithmes .

Créé 06/08/2008 à 02:28
source utilisateur

voix
4

Les schémas de circuit.

Compilation (Directed graphiques acyclique)

Plans. Très compact sous forme de graphiques.

problèmes de flux de réseau.

Décision arbres pour les systèmes experts (sic)

Diagrammes Fishbone pour recherche de pannes, improvment de processus, l' analyse de la sécurité. Pour les points de bonus, mettre en œuvre votre code de récupération d'erreurs comme des objets qui sont le diagramme de Fishbone.

Créé 28/08/2008 à 04:29
source utilisateur

voix
3

À peu près tous les problèmes peuvent être réécrites en termes de la théorie des graphes. Je ne plaisante pas, regardez un livre sur les problèmes NP complets, il y a des problèmes assez farfelus qui se transformer en théorie des graphes parce que nous avons de bons outils pour travailler avec des graphiques ...

Créé 09/03/2009 à 14:54
source utilisateur

voix
2

Le Manuel de conception algorithme contient des études de cas intéressantes avec l' utilisation créative des graphiques. Malgré son nom, le livre est très lisible et même divertissant à la fois.

Créé 12/08/2008 à 21:59
source utilisateur

voix
1

Jeux utilisent souvent des graphiques pour faciliter la recherche de chemins à travers le monde du jeu. La représentation graphique du monde peut avoir des algorithmes tels que la recherche en largeur ou A * afin de trouver une route à travers elle.

Ils utilisent souvent des arbres pour représenter des entités dans le monde. Si vous avez des milliers d'entités et ont besoin de trouver un à une certaine position puis itérer linéaire à travers une liste peut être inefficace, surtout si vous devez le faire souvent. Par conséquent , la zone peut être subdivisée en un arbre pour lui permettre de rechercher plus rapidement. Tout comme un espace linéaire peut être efficacement recherché avec une recherche binaire (et donc divisé en un arbre binaire), l' espace 2D peut être divisé en un quadtree et de l' espace 3D dans un octree .

Créé 01/07/2010 à 12:11
source utilisateur

voix
1

Les arbres sont utilisés beaucoup plus dans les langages de programmation fonctionnelle en raison de leur nature récursive.

En outre, des graphiques et des arbres sont une bonne façon de modéliser un grand nombre de problèmes AI.

Créé 09/03/2009 à 14:25
source utilisateur

voix
1

@DavidJoiner / all:

FWIW: Une nouvelle version du Manuel de conception algorithme est attendu un jour maintenant.

L'ensemble du parcours qu'il Prof Skiena a développé ce livre est également disponible sur le web:

http://www.cs.sunysb.edu/~algorith/video-lectures/2007-1.html

Créé 27/08/2008 à 00:56
source utilisateur

voix
1

graphiques de scène pour les graphiques de dessin dans les jeux et les applications multimédia utilisent largement des arbres et des graphiques. Les nœuds représentent des objets à rendre, des transformations, des contrôles, des groupes, ...

graphiques de scène ont généralement plusieurs couches et attributs qui signifie que vous pouvez dessiner seulement un nœud d'un graphe (attributs) dans un ordre spécifique (couches). En fonction du type de graphe de scène vous l'avez peut avoir deux structures PARALLÈLES: déclarations et instanciation. th

Créé 08/08/2008 à 16:58
source utilisateur

voix
1

Algorithmes pour Java: Partie 5 par Robert Sedgewick est tout au sujet des algorithmes de graphes et datastructures. Ce serait un bon premier livre à travailler à travers si vous voulez implémenter des algorithmes de graphique.

Créé 08/08/2008 à 16:46
source utilisateur

voix
1

Il y a un cours pour ces choses à mon université: le CST 326 . Je ne pensais pas que le livre était trop utile, mais les projets sont amusants et vous apprendre un peu juste sur la mise en œuvre quelques - unes des structures plus simples.

En ce qui concerne les exemples, l'un des problèmes les plus courants (par nombre de personnes qui l'utilisent) qui est résolu avec des arbres est celui de l'entrée de texte de téléphone cellulaire. Vous pouvez utiliser des arbres, pas nécessairement binaire, pour représenter l'espace des mots possibles qui peuvent sortir d'une liste donnée de numéros un coups de poing utilisateur très rapidement.

Créé 06/08/2008 à 02:18
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more