diff Graph.py @ 6:950a34c7e26b

Update for section 2.2, exercise 4, random graphs.
author Brian Neal <bgneal@gmail.com>
date Sat, 01 Dec 2012 18:17:58 -0600
parents 8e44660965ef
children 69e5977417b3
line wrap: on
line diff
--- a/Graph.py	Sat Dec 01 16:51:39 2012 -0600
+++ b/Graph.py	Sat Dec 01 18:17:58 2012 -0600
@@ -55,16 +55,18 @@
     For vertices a and b, graph[a][b] maps
     to the edge that connects a->b, if it exists."""
 
-    def __init__(self, vs=[], es=[]):
+    def __init__(self, vs=None, es=None):
         """Creates a new graph.
         vs: list of vertices;
         es: list of edges.
         """
-        for v in vs:
-            self.add_vertex(v)
+        if vs:
+            for v in vs:
+                self.add_vertex(v)
 
-        for e in es:
-            self.add_edge(e)
+        if es:
+            for e in es:
+                self.add_edge(e)
 
     def add_vertex(self, v):
         """Add a vertex to the graph."""
@@ -137,9 +139,7 @@
 
         # For each combination of 2 vertices, create an edge between them:
         for v, w in itertools.combinations(self.iterkeys(), 2):
-            e = Edge(v, w)
-            self[v][w] = e
-            self[w][v] = e
+            self.add_edge(Edge(v, w))
 
     def add_regular_edges(self, k):
         """Makes the graph regular by making every vertex have k edges.