Représentant des graphes (structure de données) en Python

Comment peut-on soigneusement représentent un graphique dans Python? (À partir de zéro c'est à dire pas de bibliothèques!)
Quelle structure de données (par exemple, dicts/n-uplets/dict(tuples)) sera rapide mais aussi efficace en terme de mémoire?
On doit être capables de faire diverses graphique les opérations de sur elle.

Comme l'a souligné, les différents graphique des représentations pourrait aider. Comment fait-on pour les mettre en œuvre en Python?

Comme pour les bibliothèques, cette question a assez de bonnes réponses.

  • Il y a beaucoup de bibliothèques déjà: graph-tool.skewed.de/performance, code.google.com/p/python-graph, networkx.github.io
  • Pour la mise en œuvre d'un Graphe d'oeil à l'article de Wikipedia qui répertorie commune de mise en œuvre et de leur efficacité à la fois de la mémoire et de la vitesse: en.wikipedia.org/wiki/...
  • Vous pouvez essayer de GitHub.com/thePastor/pangaia. Il a besoin d'un peu de réécriture de l'utilisation de la bibliothèque standard du defaultdict (ce qui n'est pas lorsque le code a été écrit). Il utilise une structure de données récursive pour le rendre plus élégant que d'autres implémentations.