Vamos considerar um exemplo simples de um grafo não direcionado para ilustrar as operações mencionadas:
```
G = {
'A': {'B', 'C'},
'B': {'A', 'C'},
'C': {'A', 'B'}
}
```
Neste exemplo, temos três vértices: A, B e C. Agora, vamos mostrar exemplos de como realizar cada operação:
1. `adjacencia(G, x, y)`: Testa se existe uma aresta do vértice x para o vértice y.
- Exemplo: `adjacencia(G, 'A', 'B')` retorna `True`, pois há uma aresta de A para B.
2. `vizinhos(G, x)`: Apresenta a lista de todos os vértices y tais que existe uma aresta do vértice x para o vértice y.
- Exemplo: `vizinhos(G, 'A')` retorna `['B', 'C']`, pois os vértices B e C são vizinhos de A.
3. `adiciona_vertice(G, x)`: Adiciona o vértice x, se ele não estiver lá.
- Exemplo: Após chamar `adiciona_vertice(G, 'D')`, o grafo G fica assim:
```
G = {
'A': {'B', 'C'},
'B': {'A', 'C'},
'C': {'A', 'B'},
'D': set()
}
```
4. `remove_vertice(G, x)`: Remove o vértice x, se este existir.
- Exemplo: Após chamar `remove_vertice(G, 'B')`, o grafo G fica assim:
```
G = {
'A': {'C'},
'C': {'A'}
}
```
5. `adiciona_aresta(G, x, y)`: Adiciona a aresta do vértice x para o vértice y, se ela não existir.
- Exemplo: Após chamar `adiciona_aresta(G, 'A', 'D')`, o grafo G fica assim:
```
G = {
'A': {'C', 'D'},
'C': {'A'},
'D': {'A'}
}
```
6. `remove_aresta(G, x, y)`: Remove a aresta do vértice x para o vértice y, se esta existir.
- Exemplo: Após chamar `remove_aresta(G, 'A', 'C')`, o grafo G fica assim:
```
G = {
'A': {'D'},
'C': set(),
'D': {'A'}
}
```
7. `get_valor_vertice(G, x)`: Retorna o valor associado ao vértice x.
- Exemplo: Se atribuirmos valores aos vértices, como `G['A'] = 10` e `G['B'] = 20`, então `get_valor_vertice(G, 'A')` retornará `10`.
8. `set_valor_vertice(G, x, v)`: Define o valor associado ao vértice x para v.
- Exemplo: Se chamarmos `set_valor_vertice(G, 'B', 30)`, o grafo G ficará assim:
```
G = {
'A': {'D
'},
'C': set(),
'D': {'A'},
'B': 30
}
```
Esses são exemplos simples para ilustrar as operações com grafos de adjacência. Lembre-se de que a implementação real dessas operações dependerá da linguagem de programação que você está usando e da estrutura de dados escolhida para representar o grafo.
Nenhum comentário:
Postar um comentário