Update graph challenge (#122)

Simplify add_node logic.  Use more specific TypeError Exception.
This commit is contained in:
Donne Martin 2016-11-23 21:21:38 -05:00 committed by GitHub
parent 430cca2a01
commit 520aa89555
2 changed files with 8 additions and 12 deletions

View File

@ -47,20 +47,18 @@ class Graph:
def add_node(self, key):
if key is None:
raise TypeError('key cannot be None')
if key in self.nodes:
return self.nodes[key]
self.nodes[key] = Node(key)
if key not in self.nodes:
self.nodes[key] = Node(key)
return self.nodes[key]
def add_edge(self, source_key, dest_key, weight=0):
if source_key is None or dest_key is None:
raise Exception('Invalid key')
raise KeyError('Invalid key')
if source_key not in self.nodes:
self.add_node(source_key)
if dest_key not in self.nodes:
self.add_node(dest_key)
self.nodes[source_key].add_neighbor(self.nodes[dest_key],
weight)
self.nodes[source_key].add_neighbor(self.nodes[dest_key], weight)
def add_undirected_edge(self, src_key, dst_key, weight=0):
if src_key is None or dst_key is None:

View File

@ -215,20 +215,18 @@
" def add_node(self, key):\n",
" if key is None:\n",
" raise TypeError('key cannot be None')\n",
" if key in self.nodes:\n",
" return self.nodes[key]\n",
" self.nodes[key] = Node(key)\n",
" if key not in self.nodes:\n",
" self.nodes[key] = Node(key)\n",
" return self.nodes[key]\n",
"\n",
" def add_edge(self, source_key, dest_key, weight=0):\n",
" if source_key is None or dest_key is None:\n",
" raise Exception('Invalid key')\n",
" raise KeyError('Invalid key')\n",
" if source_key not in self.nodes:\n",
" self.add_node(source_key)\n",
" if dest_key not in self.nodes:\n",
" self.add_node(dest_key)\n",
" self.nodes[source_key].add_neighbor(self.nodes[dest_key],\n",
" weight)\n",
" self.nodes[source_key].add_neighbor(self.nodes[dest_key], weight)\n",
"\n",
" def add_undirected_edge(self, src_key, dst_key, weight=0):\n",
" if src_key is None or dst_key is None:\n",