Esempio n. 1
0
 def delete_node(self, n):
     try:
         if len(self.adj[n])==1: # allowed for leaf node
             Graph.delete_node(self,n)
         else:
             raise NetworkXError(
           "deleting interior node %s not allowed in tree"%(n))
     except KeyError: # NetworkXError if n not in self
         raise NetworkXError("node %s not in graph"%n)
Esempio n. 2
0
 def delete_node(self, n):
     try:
         if len(self.adj[n]) == 1:  # allowed for leaf node
             Graph.delete_node(self, n)
             del self.par[n]
         else:
             raise NetworkXError, \
           "deleting interior node %s not allowed in tree"%(n)
     except KeyError:  # NetworkXError if n not in self
         raise NetworkXError, "node %s not in graph" % n
Esempio n. 3
0
 def delete_edge(self, u, v=None): 
     if v is None: (u,v)=u
     if self.degree(u)==1 or self.degree(v)==1: # leaf edge
         Graph.delete_edge(self,u,v)
     else: # interior edge
         raise NetworkXError(\
               "deleting interior edge %s-%s not allowed in tree"%(u,v))
     if self.degree(u)==0:  # OK to delete remaining isolated node
         Graph.delete_node(self,u)
     if self.degree(v)==0:  # OK to delete remaining isolated node          
         Graph.delete_node(self,v)
Esempio n. 4
0
 def delete_edge(self, u, v=None):
     if v is None: (u, v) = u
     if self.degree(u) == 1 or self.degree(v) == 1:  # leaf edge
         Graph.delete_edge(self, u, v)
     else:  # interior edge
         raise NetworkXError(\
               "deleting interior edge %s-%s not allowed in tree"%(u,v))
     if self.degree(u) == 0:  # OK to delete remaining isolated node
         Graph.delete_node(self, u)
     if self.degree(v) == 0:  # OK to delete remaining isolated node
         Graph.delete_node(self, v)
Esempio n. 5
0
 def delete_node(self, n):
     # get neighbors first since this will remove all edges to them
     neighbors=self.neighbors(n)
     Graph.delete_node(self,n) # delete node and adjacent edges
     del self.comp[n]     # remove node from component dictionary
     if len(neighbors)==1: return # n was a leaf node
     for nbr in neighbors:
         # make new components of each nbr and connected graph
         # FIXME this does more work then is necessary
         # since nbrs of n could be in same conected component
         # and then will get renumbered more than once
         vnodes=component.node_connected_component(self,nbr)
         for v in vnodes:
             self.comp[v]=self.nc
         self.nc+=1
Esempio n. 6
0
 def delete_node(self, n):
     # get neighbors first since this will remove all edges to them
     neighbors = self.neighbors(n)
     Graph.delete_node(self, n)  # delete node and adjacent edges
     del self.comp[n]  # remove node from component dictionary
     if len(neighbors) == 1: return  # n was a leaf node
     for nbr in neighbors:
         # make new components of each nbr and connected graph
         # FIXME this does more work then is necessary
         # since nbrs of n could be in same conected component
         # and then will get renumbered more than once
         vnodes = component.node_connected_component(self, nbr)
         for v in vnodes:
             self.comp[v] = self.nc
         self.nc += 1