Grafo = vertices + arestas
Um grafo tem vertices (nos) e arestas (conexoes).
Representacao: lista de adjacencia (dict de listas).
Big-O:
• add_vertex — O(1)
• add_edge — O(1)
• get_neighbors — O(1)
• Verificar se aresta existe — O(grau)
Representacao: lista de adjacencia (dict de listas).
Big-O:
• add_vertex — O(1)
• add_edge — O(1)
• get_neighbors — O(1)
• Verificar se aresta existe — O(grau)
Python
class Graph: def __init__(self): self.adj = {} def add_vertex(self, v): if v not in self.adj: self.adj[v] = [] def add_edge(self, u, v): self.add_vertex(u) self.add_vertex(v) self.adj[u].append(v) self.adj[v].append(u) def get_neighbors(self, v): return self.adj.get(v, [])