def add_edge(self, u, v=None): if v is None: (u,v)=u # no v given, assume u is an edge tuple if self.has_edge(u,v): return # no parallel edges allowed elif u in self and v in self: raise NetworkXError("adding edge %s-%s not allowed in tree"%(u,v)) elif u in self or v in self: Graph.add_edge(self,u,v) return elif len(self.adj)==0: # first leaf Graph.add_edge(self,u,v) return else: raise NetworkXError("adding edge %s-%s not allowed in tree"%(u,v))
def add_edge(self, u, v=None): if v is None: (u, v) = u # no v given, assume u is an edge tuple if self.has_edge(u, v): return # no parallel edges allowed elif u in self and v in self: raise NetworkXError("adding edge %s-%s not allowed in tree" % (u, v)) elif u in self or v in self: Graph.add_edge(self, u, v) return elif len(self.adj) == 0: # first leaf Graph.add_edge(self, u, v) return else: raise NetworkXError("adding edge %s-%s not allowed in tree" % (u, v))
def add_edge(self, u, v=None): if v is None: (u,v)=u # no v given, assume u is an edge tuple if self.has_edge(u,v): # no parallel edges return elif u in self and v in self: raise NetworkXError, "adding edge %s-%s not allowed in tree"%(u,v) elif u in self: Graph.add_edge(self,u,v) self.par[v]=u return elif v in self: Graph.add_edge(self,u,v) self.par[u]=v return elif len(self.adj)==0: # first leaf Graph.add_edge(self,u,v) self.par[v]=u # u is v's parent return else: raise NetworkXError, "adding edge %s-%s not allowed in tree"%(u,v)
def add_edge(self, u, v=None): if v is None: (u, v) = u # no v given, assume u is an edge tuple if self.has_edge(u, v): return # no parallel edges if u in self: # u is in forest if v in self: # v is in forest if self.comp[u] == self.comp[v]: # same tree? raise NetworkXError, \ "adding edge %s-%s not allowed in forest"%(u,v) else: # join two trees Graph.add_edge(self, u, v) ucomp = self.comp[u] # set component number of v tree to u tree for n in component.node_connected_component(self, v): self.comp[n] = ucomp else: # add u-v to tree in component with u Graph.add_edge(self, u, v) self.comp[v] = self.comp[u] else: # make new tree with only u-v Graph.add_edge(self, u, v) self.comp[u] = self.nc self.comp[v] = self.nc self.nc += 1
def add_edge(self, u, v=None): if v is None: (u,v)=u # no v given, assume u is an edge tuple if self.has_edge(u,v): return # no parallel edges if u in self: # u is in forest if v in self: # v is in forest if self.comp[u]==self.comp[v]: # same tree? raise NetworkXError, \ "adding edge %s-%s not allowed in forest"%(u,v) else: # join two trees Graph.add_edge(self,u,v) ucomp=self.comp[u] # set component number of v tree to u tree for n in component.node_connected_component(self,v): self.comp[n]=ucomp else: # add u-v to tree in component with u Graph.add_edge(self,u,v) self.comp[v]=self.comp[u] else: # make new tree with only u-v Graph.add_edge(self,u,v) self.comp[u]=self.nc self.comp[v]=self.nc self.nc+=1
def add_edge(self, u, v=None): if v is None: (u, v) = u # no v given, assume u is an edge tuple if self.has_edge(u, v): # no parallel edges return elif u in self and v in self: raise NetworkXError, "adding edge %s-%s not allowed in tree" % (u, v) elif u in self: Graph.add_edge(self, u, v) self.par[v] = u return elif v in self: Graph.add_edge(self, u, v) self.par[u] = v return elif len(self.adj) == 0: # first leaf Graph.add_edge(self, u, v) self.par[v] = u # u is v's parent return else: raise NetworkXError, "adding edge %s-%s not allowed in tree" % (u, v)