Mercurial > public > think_complexity
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.