Advertisement
Guest User

Untitled

a guest
Jun 14th, 2016
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PyCon 1.63 KB | None | 0 0
  1. def __delitem__(self, id):
  2.         '''Elimina el vertice del grafo, y devuelve el valor asociado. Si no existe el identificador en el grafo, lanzara KeyError.
  3.         Borra tambien todas las aristas que salian y entraban al vertice en cuestion.
  4.         '''
  5.         if not self._validar_existencia(id):
  6.             raise KeyError()
  7.        
  8.         for i in self.keys():
  9.             h = self._vertices[i].get_adyacentes()
  10.             if h.has_key(id):
  11.                 self.borrar_arista(i, id)
  12.        
  13.         return self._vertices[id].get_valor()
  14.  
  15.  
  16.  
  17. def borrar_arista(self, desde, hasta):
  18.         '''Borra una arista que conecta los vertices indicados. Parametros:
  19.             - desde y hasta: identificadores de vertices dentro del grafo. Si alguno de estos no existe dentro del grafo, lanzara KeyError.
  20.            En caso de no existir la arista, se lanzara ValueError.
  21.         '''
  22.         if not self._validar_existencia(desde) or not self._validar_existencia(hasta):
  23.             raise KeyError()
  24.        
  25.         l = self.keys()
  26.        
  27.         if not hasta in l:
  28.             raise ValueError()  
  29.        
  30.         self._vertices[desde].quitar_adyacentes(hasta)
  31.         if not self._es_dirigido:
  32.             self._vertices[hasta].quitar_adyacentes(desde)
  33.  
  34.  
  35.  
  36. def obtener_peso_arista(self, desde, hasta):
  37.         '''Obtiene el peso de la arista que va desde el vertice 'desde', hasta el vertice 'hasta'. Parametros:
  38.             - desde y hasta: identificadores de vertices dentro del grafo. Si alguno de estos no existe dentro del grafo, lanzara KeyError.
  39.             En caso de no existir la union consultada, se devuelve None.
  40.         '''
  41.         if not self._validar_existencia(desde) or not self._validar_existencia(hasta):
  42.             raise KeyError()
  43.        
  44.         peso =  self._vertices[desde].get_peso(hasta)    
  45.         if peso == 1:
  46.             return None
  47.  
  48.         return peso
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement