2011-02-14 5 views
2

Je travaille sur une implémentation de base de graphes (basée sur la liste Adj) en C afin que je puisse réutiliser la structure de base pour résoudre tous les problèmes liés aux graphes.La meilleure façon de prendre une entrée pour une structure de données graphique en C?

Pour tracer un graphique que je dessine sur un papier, je veux le meilleur et le plus simple. En parlant de la façon dont je prends l'entrée plutôt que de la façon dont je devrais l'implémenter! :)

Est-ce que je devrais faire une routine d'entrée qui demande d'abord l'étiquette de tous les nœuds, puis demande ce que tous les bords doivent être connectés en fonction de deux étiquettes?

Qu'est-ce qui pourrait être un bon moyen de sortir rapidement? Je veux un moyen facile de sortir qui me permet de dépenser moins d'énergie sur le "Input".

Répondre

3

Le mieux est d'aller pour l'entrée d'une liste de bord,

qui est triplets de,

Source, Destination, coût

Cette routine peut être utilisé pour remplir Adj Liste et Adj Matrice. Avec ce dernier, vous devrez cependant initialiser correctement la matrice et configurer une convention pour déterminer les arêtes inexistantes.

+0

Pour que le triplet de source, de destination et de coût fonctionne, il faut que les nœuds soient en mémoire, n'est-ce pas? –

+0

Vous pouvez les garder n'importe où, même dans la base de données. –

2

Ici vous trouverez des détails sur la représentation du graphique:
Graph-internal-representaion
Cependant voici quelques codes en C++ et java sont également donnés, que vous pouvez facilement convertir les codes C.

Questions connexes