Metodos grafos
Publicado por Gerard (1 intervención) el 03/10/2018 17:42:36
Hola, alguien me podría explicar cual es la función de cada método?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
class Graph:
def __init__(self,n = None, e = None):
self._nodes = {} if not n else n
self._edges = {} if not n else e
@property
def node(self):
return self._nodes
@property
def edge(self):
return self._edges
def nodes(self):
return [node for node in self._nodes.keys()]
def edges(self):
edges = []
for node1, edge_list in self._edges.items():
for node2 in edge_list.keys():
possible_edge = (node1,node2) if node1 <= node2 else (node2,node1)
#repeticiones
if possible_edge not in edges:
edges.append(possible_edge)
return edges
def add_node(self, node, attr_dict=None):
self._nodes[node] = attr_dict if attr_dict else {} # si esta vacio, anade un diccionario
def add_edge(self, node1, node2, attr_dict=None):
if node1 not in self._nodes.keys(): # si no hay nodos los creamos
self.add_node(node1)
if node2 not in self._nodes.keys():
self.add_node(node2)
if attr_dict:
self._edges.setdefault(node1,{})
else:
self._edges.setdefault(node1,{})[node2] = {}
self._edges.setdefault(node2,{})[node1] = {}
# def add_nodes_from(self, node_list, attr_dict=None):
# pass
# def add_edges_from(self, edge_list, attr_dict=None):
# pass
Valora esta pregunta


0