GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5...
Transcript of GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5...
![Page 1: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/1.jpg)
GRAFOS E DIGRAFOS Vanessa BraganholoEstruturas de Dados e Seus Algoritmos
![Page 2: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/2.jpg)
4 2
3
1
5 6
GRAFOS
Definições
Representação
Algoritmos Busca Inserção (arestas e vértices) Exclusão (arestas e vértices)
![Page 3: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/3.jpg)
GRAFOS
Grafos são estruturas de dados formadas por um conjunto de vértices e um conjunto de arestas.
INSTITUTO DE COMPUTAÇÃO - UFF 3
4 2
3
1
5 6vértices
arestas
![Page 4: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/4.jpg)
APLICAÇÕES DE GRAFOS
Associando-se significados aos vértices e às arestas, o grafo passa a constituir um modelo de uma situação ou informação real
4 2
3
1
5 6vértices
arestas
![Page 5: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/5.jpg)
GRADE CURRICULAR
INSTITUTO DE COMPUTAÇÃO - UFF 5
![Page 6: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/6.jpg)
ROTAS DE VOOS
INSTITUTO DE COMPUTAÇÃO - UFF 6Fonte da imagem: https://www.aviacaocomercial.net/rotastam.htm
![Page 7: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/7.jpg)
MAPA DE ESTRADAS
INSTITUTO DE COMPUTAÇÃO - UFF 7Fonte da imagem: http://www.sp-turismo.com/mapa.htm
![Page 8: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/8.jpg)
MAPA DE METRÔ
INSTITUTO DE COMPUTAÇÃO - UFF 8
![Page 9: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/9.jpg)
REDES SOCIAIS
INSTITUTO DE COMPUTAÇÃO - UFF 9Fonte da imagem: https://thenextweb.com/contributors/2017/08/21/blockchain-can-make-social-networks-private-profitable/
![Page 10: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/10.jpg)
PROCESSOS/TAREFAS
INSTITUTO DE COMPUTAÇÃO - UFF 10Fonte da imagem: https://www.softwareadvice.com/resources/what-is-critical-path/
![Page 11: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/11.jpg)
E DIVERSAS OUTRAS!
INSTITUTO DE COMPUTAÇÃO - UFF 11
![Page 12: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/12.jpg)
GRAFOS – DEFINIÇÕES
![Page 13: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/13.jpg)
DEFINIÇÃO FORMAL
Um grafo G é representado por um conjunto (não vazio) V de vértices e um conjunto (possivelmente vazio) E de arestas (edges)
G = (V, E)
|V| é a quantidade de vértices de G
|E| é a quantidade de arestas de G
4 2
3
1
5 6
![Page 14: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/14.jpg)
GRAFOS ORIENTADOS X NÃO ORIENTADOS
As arestas podem ter uma direção ou podem ser bi-direcionais
Grafos orientados: as arestas possuem uma direção Também são chamados de grafos dirigidos ou digrafos
Grafos não orientados: as arestas são bi-direcionais (se existe uma conexão a → bentão também existe uma conexão b → a)
INSTITUTO DE COMPUTAÇÃO - UFF 14
![Page 15: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/15.jpg)
GRAFO ORIENTADO (DIRIGIDO OU DIGRAFO)
Arestas possuem uma direção
Alguns autores usam o termo arco para as arestas de um grafo dirigido
Exemplo:
G = (V, E)
V = {1, 2, 3, 4, 5}
E = {(1, 5), (2, 3), (2, 4), (3, 2), (4, 3), (5, 2), (5, 4)}
INSTITUTO DE COMPUTAÇÃO - UFF 15
5
1
2
34
![Page 16: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/16.jpg)
GRAFO ORIENTADO (DIRIGIDO OU DIGRAFO)
Arestas possuem uma direção
Alguns autores usam o termo arco para as arestas de um grafo dirigido
Exemplo:
G = (V, E)
V = {1, 2, 3, 4, 5}
E = {(1, 5), (2, 3), (2, 4), (3, 2), (4, 3), (5, 2), (5, 4)}
INSTITUTO DE COMPUTAÇÃO - UFF 16
5
1
2
34
![Page 17: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/17.jpg)
GRAFO ORIENTADO (DIRIGIDO OU DIGRAFO)
Exemplos: Malha de transporte urbano (ruas possuem um sentido) Pessoa A segue pessoa B no Instagram (mas o contrário nem sempre é verdadeiro)
INSTITUTO DE COMPUTAÇÃO - UFF 17
5
1
2
34
![Page 18: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/18.jpg)
GRAFO NÃO ORIENTADO
Arestas são bi-direcionais
G = (V, E)
V = {1, 2, 3, 4, 5, 6}
E = {{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {2, 6}, {3, 5}, {4, 5}, {4, 6}}
INSTITUTO DE COMPUTAÇÃO - UFF 18
4 2
3
1
5 6
![Page 19: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/19.jpg)
GRAFO NÃO ORIENTADO
Arestas são bi-direcionais
G = (V, E)
V = {1, 2, 3, 4, 5, 6}
E = {{1, 2}, {1, 3}, {1, 4}, {2, 3}, {2, 4}, {2, 6}, {3, 5}, {4, 5}, {4, 6}}
INSTITUTO DE COMPUTAÇÃO - UFF 19
4 2
3
1
5 6
![Page 20: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/20.jpg)
GRAFO NÃO ORIENTADO
Exemplo: Amigos no Facebook (se A é amigo de B, Btambém é amigo de A)
Mapa de cabeamento de uma rede (se é possível enviar dados do ponto A ao ponto B, então também é possível enviar do ponto B ao ponto A)
INSTITUTO DE COMPUTAÇÃO - UFF 20
4 2
3
1
5 6
![Page 21: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/21.jpg)
GRAFOS ORIENTADOS X NÃO ORIENTADOS
Um grafo expressa uma relação binária R
Grafo não orientado {v1, v2} ∈ G(E) ⇔ v1 R v2 ^ v2 R v1
Exemplo: R = amigo no Facebook
Grafo orientado (v1, v2) ∈ G(E) ⇔ v1 R v2 Exemplo: R = seguir alguém no Instagram
INSTITUTO DE COMPUTAÇÃO - UFF 21
![Page 22: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/22.jpg)
DEFINIÇÕES E TERMINOLOGIA
Um grafo é valorado se possuir valores (pesos) associados às arestas e/ou aos vértices
Exemplo: num grafo de rotas de voo, uma aresta pode ser valorada com a distância entre os dois aeroportos que ela conecta
INSTITUTO DE COMPUTAÇÃO - UFF 22
6
1
34
2
5
2381517
7
919
![Page 23: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/23.jpg)
DEFINIÇÕES E TERMINOLOGIA
Um vértice v1 é adjacente a um vértice v2 em G, se existe uma aresta conectando v1 a v2 em G.
Em grafo não orientado: v1 é adjacente a v2 se existe aresta {v1,v2} (nesse caso v2 também é adjacente a v1)
Em grafo orientado, v1 é adjacente a v2 se existe aresta (v1, v2)
INSTITUTO DE COMPUTAÇÃO - UFF 23
v1 v2 v1 v2 v1 v2
adjacência é simétrica adjacência não é simétrica
Grafo não-orientado Grafo orientado
![Page 24: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/24.jpg)
DEFINIÇÕES E TERMINOLOGIA
Dados dois vértices adjacentes v1 e v2
Em um grafo orientado, uma aresta (v1, v2) é incidente de (sai de) v1 e é incidente a (entra em) v2
Em um grafo não orientado, uma aresta {v1, v2} é incidente em v1 e v2
INSTITUTO DE COMPUTAÇÃO - UFF 24
v1 v2
v1 v2
![Page 25: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/25.jpg)
DEFINIÇÕES E TERMINOLOGIA
O grau de um vértice é o número de arestas que nele/dele incidem
INSTITUTO DE COMPUTAÇÃO - UFF 25
v1
v4v3v2
v7v6v5
v8
![Page 26: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/26.jpg)
DEFINIÇÕES E TERMINOLOGIA
O grau de um vértice é o número de arestas que nele/dele incidem
INSTITUTO DE COMPUTAÇÃO - UFF 26
v1
v4v3v2
v7v6v5
v8
20
4 4
4
3
34
Vértices com grau 0 são ditos vértices isolados
![Page 27: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/27.jpg)
DEFINIÇÕES E TERMINOLOGIA
A ordem de um grafo é o número de vértices que ele possui
G = (V, E)
ordem(G) = |V|
INSTITUTO DE COMPUTAÇÃO - UFF 27
v1
v4v3v2
v7v6v5
v8
![Page 28: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/28.jpg)
DEFINIÇÕES E TERMINOLOGIA
O caminho de tamanho k entre dois vértices v1 e v2 é a sequencia <v0, v1, …, vk>, onde v0 = v1, vk = v2, e (vi-1, vi) Î G(E) (ou {vi-1, vi} Î G(E) para grafos não orientados) para i=1..k
O caminho contém os vértices v0, v1, …, vk, e as arestas (v0, v1), (v1, v2), … (vk-1, vk) (ou {v0, v1}, {v1, v2}, … {vk-1, vk} para grafos não orientados)
Exemplo: Caminho de tamanho 1 entre os vértices 1 e 3:
Vértices: {1, 3}
Arestas: {{1, 3}}
Caminho de tamanho 2 entre os vértices 1 e 3: Vértices: {1, 2, 3}
Arestas: {{1, 2}, {2, 3}}
INSTITUTO DE COMPUTAÇÃO - UFF 28
24
1
35
![Page 29: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/29.jpg)
DEFINIÇÕES E TERMINOLOGIA
Se existe um caminho entre v1 e v2, diz-se que v2 é alcançável a partir de v1
O caminho é simples se todos os vértices no caminho são distintos
Exemplo: 3 é alcançável a partir de 4 2 não é alcançável a partir de 1
INSTITUTO DE COMPUTAÇÃO - UFF 29
24
1
35
![Page 30: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/30.jpg)
DEFINIÇÕES E TERMINOLOGIA
Um grafo é dito conectado se existe um caminho ligando cada par de vértices
INSTITUTO DE COMPUTAÇÃO - UFF 30
v3v2
v1
v5v4
Conectado
v3v2
v1
v5v4
Não Conectado
![Page 31: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/31.jpg)
DEFINIÇÕES E TERMINOLOGIA
Um grafo é dito completo se todos os seus pares de vértices forem adjacentes
INSTITUTO DE COMPUTAÇÃO - UFF 31
v3v2
v1
v5v4
![Page 32: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/32.jpg)
DEFINIÇÕES E TERMINOLOGIA
Uma aresta que tem ambas as extremidades em um mesmo vértice é chamada laço
INSTITUTO DE COMPUTAÇÃO - UFF 32
v1
![Page 33: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/33.jpg)
DEFINIÇÕES E TERMINOLOGIA
Um caminho <v0, v1, …, vk> forma um ciclo se v0 = vk e o caminho contém pelo menos uma aresta
Exemplo: caminho de v1 a v1
INSTITUTO DE COMPUTAÇÃO - UFF 33
v3v2
v1
v5v4
![Page 34: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/34.jpg)
DEFINIÇÕES E TERMINOLOGIA
Um grafo sem ciclos é dito acíclico
INSTITUTO DE COMPUTAÇÃO - UFF 34
v3v2
v1
v5v4
v3v2
v1
v5v4
v3v2
v1
v5v4
Cíclico Acíclico Acíclico
![Page 35: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/35.jpg)
DEFINIÇÕES E TERMINOLOGIA
Um grafo é dito simétrico se para cada aresta (v, w) existe uma aresta (w, v)
INSTITUTO DE COMPUTAÇÃO - UFF 35
v2v1
v4v3
v2v1
v4v3
![Page 36: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/36.jpg)
GRAFOS – REPRESENTAÇÕESINSTITUTO DE COMPUTAÇÃO - UFF 36
![Page 37: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/37.jpg)
REPRESENTAÇÃO FÍSICA DE GRAFOS
Matriz de adjacênciaMatriz de incidênciaLista de adjacênciaLista de incidência
INSTITUTO DE COMPUTAÇÃO - UFF 37
![Page 38: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/38.jpg)
REPRESENTAÇÃO FÍSICA DE GRAFOS
Matriz de adjacênciaMatriz de incidênciaLista de adjacênciaLista de incidência
INSTITUTO DE COMPUTAÇÃO - UFF 38
![Page 39: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/39.jpg)
MATRIZ DE ADJACÊNCIA
Matriz de adjacência A(n x n) de um grafo G de ordem n, é uma matriz onde cada elemento ai,j é:Grafos orientados:
ai,j = 1 se (vi,vj) Î G(E) ai,j = 0 se (vi,vj) Ï G(E)
Grafos não orientados: ai,j = aj,i ai,j = 1 se {vi,vj} Î G(E) ai,j = 0 se {vi,vj} Ï G(E)
![Page 40: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/40.jpg)
MATRIZ DE ADJACÊNCIA
A matriz de adjacência é uma forma de representação de grafos simples, econômica e adequada para muitos problemas que envolvem apenas a estrutura do grafo
1
6 5
4
32vértices
vért
ices 1 2 3 4 5 6
1 0 1 0 1 0 1
2 0 0 1 1 0 0
3 0 0 0 0 0 0
4 0 0 1 0 1 0
5 0 0 0 1 0 1
6 0 1 0 1 0 0
![Page 41: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/41.jpg)
14
2
3
1 2 3 4
1 0 1 1 0
2 1 0 1 1
3 1 1 0 1
4 0 1 1 0
MATRIZ DE ADJACÊNCIA PARA GRAFO NÃO ORIENTADO
![Page 42: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/42.jpg)
14
2
3
1 2 3 4
1 0 1 1 0
2 0 1 1
3 0 1
4 0
MATRIZ DE ADJACÊNCIA PARA GRAFO NÃO ORIENTADO
Matriz é simétrica
![Page 43: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/43.jpg)
MATRIZ DE ADJACÊNCIA PARA GRAFOS VALORADOSValores associados às linhas podem ser representados por uma extensão simples da Matriz de Adjacência aij = k se (vi,vj) Î G(E) aij = * se (vi,vj) Ï G(E) 1 2 3 4 5 6
1 * 9 * 7 * 19
2 9 * 23 15 * *
3 * 23 * 27 * *
4 7 15 27 * 30 17
5 * * * 30 * 8
6 19 * * 17 8 *
6
1
34
2
52730
2381517
7
919
![Page 44: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/44.jpg)
MATRIZ DE ADJACÊNCIA
Matriz binária: ocupa pouco espaço, especialmente para grafos grandes
Manipulação simples: recursos para manipular matrizes existem em qualquer linguagem de programação
Fácil determinar se (vi,vj) Î G(E)
Fácil determinar vértices adjacentes a um determinado vértice v
Quando o grafo é não orientado, a MA é simétrica (mais econômica)
Inserção de novas arestas é fácil
Inserção de novos vértices é muito difícil
INSTITUTO DE COMPUTAÇÃO - UFF 44
![Page 45: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/45.jpg)
REPRESENTAÇÃO FÍSICA DE GRAFOS
Matriz de adjacênciaMatriz de incidênciaLista de adjacênciaLista de incidência
INSTITUTO DE COMPUTAÇÃO - UFF 45
![Page 46: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/46.jpg)
MATRIZ DE INCIDÊNCIA
É uma matriz B(n x m), sendo n o número de vértices, m o número de arestas e: bij= -1 se o vértice i é a origem da aresta j bij= 1 se o vértice i é o término da aresta j bij = 0 se aresta (i,j) Ï G(E)
Para grafos não orientados, bij= 1 se a aresta j é incidente ao vértice i.
INSTITUTO DE COMPUTAÇÃO - UFF 46
a1 a2 a3 a4 a5
1 -1 -1 0 0 0
2 1 0 -1 -1 0
3 0 1 1 0 -1
4 0 0 0 1 1
14
2
3
a2a5
a1 a4
a3
arestas
vért
ices
![Page 47: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/47.jpg)
REPRESENTAÇÃO FÍSICA DE GRAFOS
Matriz de adjacênciaMatriz de incidênciaLista de adjacênciaListas de incidência
INSTITUTO DE COMPUTAÇÃO - UFF 47
![Page 48: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/48.jpg)
Para cada vértice v é representada a lista de vértices u tais que (v,u) Î G(E)
Possíveis formas de armazenamento: vetores, vetores + listas encadeadas, listas encadeadas
Melhor forma de representação: listas encadeadas Uso racional do espaço Flexibilidade
LISTA DE ADJACÊNCIA
INSTITUTO DE COMPUTAÇÃO - UFF 48
1 2 3 /
2
3
4 / /
3
4 /
4 /14
2
3
G
![Page 49: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/49.jpg)
LISTAS DE ADJACÊNCIA
Nós podem ser estendidos para representar outras informações
INSTITUTO DE COMPUTAÇÃO - UFF 49
14
2
3
G
2 3 ?
3
4 /
4 ?
1 ?
2 ?
3 ?
4 / /?
?
?
?
/
/
![Page 50: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/50.jpg)
REPRESENTAÇÃO FÍSICA DE GRAFOS
Matriz de adjacênciaMatriz de incidênciaLista de adjacênciaLista de incidência
INSTITUTO DE COMPUTAÇÃO - UFF 50
![Page 51: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/51.jpg)
LISTAS DE INCIDÊNCIA
INSTITUTO DE COMPUTAÇÃO - UFF 51
14
2
3
1 2 1 3 2 3 2 4 3 4 /G
![Page 52: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/52.jpg)
IMPLEMENTAÇÃO
Veremos a implementação de grafos usando lista de adjacência São flexíveis para acomodar inserções e remoções, ao contrário das matrizes de adjacência e
incidência Facilitam a identificação dos vértices do grafo, ao contrário das listas de incidência
INSTITUTO DE COMPUTAÇÃO - UFF 52
![Page 53: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/53.jpg)
ESTRUTURA EM C
typedef struct vizinho {int id_vizinho;struct vizinho *prox;
}TVizinho;
typedef struct grafo{int id_vertice;TVizinho *prim_vizinho;struct grafo *prox;
}TGrafo;
INSTITUTO DE COMPUTAÇÃO - UFF 53
1 2 3 /
2
3
4 / /
3
4 /
4 /
GTVizinho
TGra
fo
14
2
3
![Page 54: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/54.jpg)
INICIALIZAÇÃO DA ESTRUTURA
TGrafo *inicializa(){return NULL;
}
INSTITUTO DE COMPUTAÇÃO - UFF 54
![Page 55: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/55.jpg)
IMPRESSÃO DO GRAFO
void imprime(TGrafo *g){while(g != NULL){
printf("Vértice %d\n", g->id_vertice);printf("Vizinhos: ");TVizinho *v = g->prim_vizinho;while(v != NULL){
printf("%d ", v->id_vizinho);v = v->prox;
}printf("\n\n");g = g->prox;
}}
INSTITUTO DE COMPUTAÇÃO - UFF 55
![Page 56: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/56.jpg)
LIBERAÇÃO DA ESTRUTURA
void libera(TGrafo *g){while(g != NULL){
libera_vizinhos(g->prim_vizinho);TGrafo *temp = g;g = g->prox;free(temp);
}}
void libera_vizinhos(TVizinho *v){while(v != NULL){
TVizinho *temp = v;v = v->prox;free(temp);
}}
INSTITUTO DE COMPUTAÇÃO - UFF 56
![Page 57: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/57.jpg)
GRAFOS – ALGORITMOS BÁSICOSINSTITUTO DE COMPUTAÇÃO - UFF 57
![Page 58: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/58.jpg)
BUSCA
Busca por um vértice v1 Basta percorrer a lista de vértices até encontrar v1
Busca por uma aresta (v1, v2) Percorrer a lista de vértices até encontrar v1 Depois percorrer a lista de vizinhos de v1 até encontrar v2
INSTITUTO DE COMPUTAÇÃO - UFF 58
1 2 3 /
2
3
4 / /
3
4 /
4 /
GTVizinho
TGra
fo
14
2
3
![Page 59: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/59.jpg)
BUSCA POR VÉRTICE X
TGrafo* busca_vertice(TGrafo* g, int x){while((g != NULL) && (g->id_vertice != x)) {
g = g->prox;}return g;
}
INSTITUTO DE COMPUTAÇÃO - UFF 59
![Page 60: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/60.jpg)
BUSCA POR ARESTA (V1, V2) OU {V1, V2}
TVizinho* busca_aresta(TGrafo *g, int v1, int v2){TGrafo *pv1 = busca_vertice(g,v1);TGrafo *pv2 = busca_vertice(g,v2);TVizinho *resp = NULL;//checa se ambos os vértices existemif((pv1 != NULL) && (pv2 != NULL)) {
//percorre a lista de vizinhos de v1 procurando por v2resp = pv1->prim_vizinho;while ((resp != NULL) && (resp->id_vizinho != v2)) {
resp = resp->prox;}
}return resp;
}
INSTITUTO DE COMPUTAÇÃO - UFF 60
![Page 61: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/61.jpg)
INSERÇÃO DE VÉRTICE
Insere o vértice na lista encadeada de vértices, como primeiro vértice da lista
Exemplo: inserir vértice 4
INSTITUTO DE COMPUTAÇÃO - UFF 61
1 2 3 /
2
3 / /
3 /
G
12
3
![Page 62: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/62.jpg)
INSERÇÃO DE VÉRTICE
Insere o vértice na lista encadeada de vértices, como primeiro vértice da lista
Exemplo: inserir vértice 4
INSTITUTO DE COMPUTAÇÃO - UFF 62
1 2 3 /
2
3 / /
3 /
G
14
2
3
4 /
![Page 63: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/63.jpg)
INSERÇÃO DE VÉRTICE
TGrafo *insere_vertice(TGrafo *g, int x){TGrafo *p = busca_vertice(g, x);if(p == NULL){
p = (TGrafo*) malloc(sizeof(TGrafo));p->id_vertice = x;p->prox = g;p->prim_vizinho = NULL;g = p;
}return g;
}
INSTITUTO DE COMPUTAÇÃO - UFF 63
![Page 64: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/64.jpg)
INSERÇÃO DE ARESTA
Grafo não orientado (digrafo) Inserção de aresta {v1, v2}: inserir v2 na lista de vizinhos de v1, e v1 na lista de vizinhos de v2 (ou
seja, inserir as arestas (v1, v2) e (v2, v1))
Grafo orientado Inserção de aresta (v1, v2): inserir v2 na lista de vizinhos de v1
Em ambos os casos, verificar se a aresta já existe antes de realizar a inserção
INSTITUTO DE COMPUTAÇÃO - UFF 64
![Page 65: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/65.jpg)
INSERÇÃO DE ARESTA EM GRAFO NÃO ORIENTADOExemplo: Inserir aresta {2, 4}
INSTITUTO DE COMPUTAÇÃO - UFF 65
1 2 3 /
2
3 /
1 /
G
14
2
3
4 /
1 /
![Page 66: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/66.jpg)
INSERÇÃO DE ARESTA EM GRAFO NÃO ORIENTADOExemplo: Inserir aresta {2, 4}
INSTITUTO DE COMPUTAÇÃO - UFF 66
2
1 /
14
2
3
4
4
1 2 3 /
2
3 /
G
1 /
![Page 67: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/67.jpg)
INSERÇÃO DE ARESTA EM GRAFO NÃO ORIENTADOvoid insere_um_sentido(TGrafo *g, int v1, int v2){
TGrafo *p = busca_vertice(g, v1);TVizinho *nova = (TVizinho *) malloc(sizeof(TVizinho));nova->id_vizinho = v2;nova->prox = p->prim_vizinho;p->prim_vizinho = nova;
}
void insere_aresta(TGrafo *g, int v1, int v2){TVizinho *v = busca_aresta(g, v1, v2);if(v == NULL)
insere_um_sentido(g, v1, v2);insere_um_sentido(g, v2, v1);
}
INSTITUTO DE COMPUTAÇÃO - UFF 67
Se grafo é não orientado, usar essa função
![Page 68: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/68.jpg)
INSERÇÃO DE ARESTA EM DIGRAFO
Exemplo: Inserir aresta (2, 4)
INSTITUTO DE COMPUTAÇÃO - UFF 68
1 2 3 /
2
3 / /
3 /
G
14
2
3
4 /
![Page 69: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/69.jpg)
INSERÇÃO DE ARESTA EM DIGRAFO
Exemplo: Inserir aresta (2, 4)
INSTITUTO DE COMPUTAÇÃO - UFF 69
1 2 3 /
2
3 / /
4
G
14
2
3
4 /
3 /
![Page 70: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/70.jpg)
INSERÇÃO DE ARESTA EM DIGRAFO
void insere_aresta_digrafo(TGrafo *g, int v1, int v2){TVizinho *v = busca_aresta(g, v1, v2);if(v == NULL) {
insere_um_sentido(g, v1, v2);}
}
INSTITUTO DE COMPUTAÇÃO - UFF 70
![Page 71: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/71.jpg)
EXCLUSÃO DE ARESTA
Grafo não orientado Exclusão de aresta {v1, v2}: excluir v2 da lista de vizinhos de v1, e v1 da lista de vizinhos de v2 (ou
seja, excluir as arestas (v1, v2) e (v2, v1))
Grafo orientado (dígrafo) Exclusão de aresta (v1, v2): excluir v2 da lista de vizinhos de v1
Em ambos os casos, liberar a memória
INSTITUTO DE COMPUTAÇÃO - UFF 71
![Page 72: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/72.jpg)
EXCLUSÃO DE ARESTA EM GRAFO NÃO ORIENTADOExemplo: exclusão da aresta {2, 3}
INSTITUTO DE COMPUTAÇÃO - UFF 72
G
2
1 /
14
2
3
4
4
1 2 3 /
2
3 / 1 2 /
3
![Page 73: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/73.jpg)
EXCLUSÃO DE ARESTA EM GRAFO NÃO ORIENTADOExemplo: exclusão da aresta {2, 3}
INSTITUTO DE COMPUTAÇÃO - UFF 73
G
2
1 /
14
2
3
4
4
1 2 3 /
2
3 / 1 2 /
3
![Page 74: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/74.jpg)
EXCLUSÃO DE ARESTA EM GRAFO NÃO ORIENTADOExemplo: exclusão da aresta {2, 3}
INSTITUTO DE COMPUTAÇÃO - UFF 74
G
2
1 /
14
2
3
4
4
1 2 3 /
2
3 / 1 /
![Page 75: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/75.jpg)
EXCLUSÃO DE ARESTA EM GRAFO NÃO ORIENTADOvoid retira_um_sentido(TGrafo *g, int v1, int v2){
TGrafo *p = busca_vertice(g, v1);if(p != NULL) {
TVizinho *ant = NULL;TVizinho *atual = p->prim_vizinho;while ((atual) && (atual->id_vizinho != v2)) {
ant = atual;atual = atual->prox;
}if (ant == NULL) //v2 era o primeiro nó da lista
p->prim_vizinho = atual->prox;else
ant->prox = atual->prox;free(atual);
}}
INSTITUTO DE COMPUTAÇÃO - UFF 75
![Page 76: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/76.jpg)
EXCLUSÃO DE ARESTA EM GRAFO NÃO ORIENTADO (CONT.)void retira_aresta(TGrafo *g ,int v1, int v2){
TVizinho* v = busca_aresta(g,v1,v2);if(v != NULL) {
retira_um_sentido(g, v1, v2);retira_um_sentido(g, v2, v1);
}}
INSTITUTO DE COMPUTAÇÃO - UFF 76
![Page 77: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/77.jpg)
EXCLUSÃO DE ARESTA EM DIGRAFO
Exemplo: Exclusão de aresta (2, 3)
INSTITUTO DE COMPUTAÇÃO - UFF 77
1 2 3 /
2
3
4 / /
3
4 /
4 /
G
14
2
3
![Page 78: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/78.jpg)
EXCLUSÃO DE ARESTA EM DIGRAFO
Exemplo: Exclusão de aresta (2, 3)
INSTITUTO DE COMPUTAÇÃO - UFF 78
1 2 3 /
2
3
4 / /
3
4 /
4 /
G
14
2
3
![Page 79: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/79.jpg)
EXCLUSÃO DE ARESTA EM DIGRAFO
Exemplo: Exclusão de aresta (2, 3)
INSTITUTO DE COMPUTAÇÃO - UFF 79
1 2 3 /
2
3
4 / /
4 /
4 /
G
14
2
3
![Page 80: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/80.jpg)
EXCLUSÃO DE ARESTA EM DIGRAFO
void retira_aresta_digrafo(TGrafo *g ,int v1, int v2){TVizinho* v = busca_aresta(g,v1,v2);if(v != NULL) {
retira_um_sentido(g, v1, v2);}
}
INSTITUTO DE COMPUTAÇÃO - UFF 80
![Page 81: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/81.jpg)
EXCLUSÃO DE VÉRTICE
Exclui vértice sua lista de vizinhos todos os vizinhos que tinham esse vértice como extremidade
Libera memória
INSTITUTO DE COMPUTAÇÃO - UFF 81
1 2 3 /
2
3
4 / /
3
4 /
4 /
G
![Page 82: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/82.jpg)
EXCLUSÃO DE VÉRTICE EM GRAFO NÃO ORIENTADOExemplo: exclusão do vértice 2
INSTITUTO DE COMPUTAÇÃO - UFF 82
G
2
1 /
14
2
3
4
4
1 2 3 /
2
3 / 1 /
![Page 83: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/83.jpg)
EXCLUSÃO DE VÉRTICE EM GRAFO NÃO ORIENTADORetira todos os vizinhos de 2 Retira vizinho 4
INSTITUTO DE COMPUTAÇÃO - UFF 83
G
2
1 /
14
2
3
4
4
1 2 3 /
2
3 / 1 /
![Page 84: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/84.jpg)
EXCLUSÃO DE VÉRTICE EM GRAFO NÃO ORIENTADORetira todos os vizinhos de 2 Retira vizinho 4
INSTITUTO DE COMPUTAÇÃO - UFF 84
G
1 /
14
2
3
4 /
1 2 3 /
2
3 / 1 /
![Page 85: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/85.jpg)
EXCLUSÃO DE VÉRTICE EM GRAFO NÃO ORIENTADORetira todos os vizinhos de 2 Retira vizinho 1
INSTITUTO DE COMPUTAÇÃO - UFF 85
G
1 /
14
2
3
4 /
1 2 3 /
2
3 / 1 /
![Page 86: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/86.jpg)
EXCLUSÃO DE VÉRTICE EM GRAFO NÃO ORIENTADORetira todos os vizinhos de 2 Retira vizinho 1
INSTITUTO DE COMPUTAÇÃO - UFF 86
G
14
2
3
4 /
1 3 /
2 /
3 / 1 /
![Page 87: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/87.jpg)
EXCLUSÃO DE VÉRTICE EM GRAFO NÃO ORIENTADORetira vértice 2
INSTITUTO DE COMPUTAÇÃO - UFF 87
G
14
2
3
4 /
1 3 /
2 /
3 / 1 /
![Page 88: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/88.jpg)
EXCLUSÃO DE VÉRTICE EM GRAFO NÃO ORIENTADORetira vértice 2
INSTITUTO DE COMPUTAÇÃO - UFF 88
G
14
3
4 /
1 3 /
3 / 1 /
![Page 89: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/89.jpg)
EXCLUSÃO DE VÉRTICE EM GRAFO NÃO ORIENTADOExercício: escreva uma função em C para exclusão de vértice em grafo orientado
TGrafo *retira_vértice(TGrafo *g, int v);
INSTITUTO DE COMPUTAÇÃO - UFF 89
![Page 90: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/90.jpg)
EXCLUSÃO DE VÉRTICE EM DIGRAFO
Exemplo: exclusão do vértice 2
INSTITUTO DE COMPUTAÇÃO - UFF 90
1 2 3 /
2
3
4 / /
3
4 /
4 /
G
14
2
3
![Page 91: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/91.jpg)
EXCLUSÃO DE VÉRTICE EM DIGRAFO
Retira todos os vizinhos de 2
INSTITUTO DE COMPUTAÇÃO - UFF 91
1 2 3 /
2
3
4 / /
3
4 /
4 /
G
14
2
3
![Page 92: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/92.jpg)
EXCLUSÃO DE VÉRTICE EM DIGRAFO
Retira 2 da lista de vizinhos dos outros nós
INSTITUTO DE COMPUTAÇÃO - UFF 92
14
3
2
1 2 3 /
2 /
3
4 / /
4 /
G
![Page 93: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/93.jpg)
EXCLUSÃO DE VÉRTICE EM DIGRAFO
Retira vértice 2
INSTITUTO DE COMPUTAÇÃO - UFF 93
14
3
2
1 3 /
2 /
3
4 / /
4 /
G
![Page 94: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/94.jpg)
EXCLUSÃO DE VÉRTICE EM DIGRAFO
Retira vértice 2
INSTITUTO DE COMPUTAÇÃO - UFF 94
1 3 /
3
4 / /
4 /
G
14
3
![Page 95: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/95.jpg)
EXCLUSÃO DE VÉRTICE EM DIGRAFOExercício: escreva uma função em C para exclusão de vértice em grafo orientado
TGrafo *retira_vértice_digrafo(TGrafo *g, int v);
INSTITUTO DE COMPUTAÇÃO - UFF 95
![Page 96: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/96.jpg)
ALGORITMOS EM GRAFOS
Existem diversos algoritmos eficientes para encontrar caminhos em grafos Eles serão aprendidos na disciplina de Algoritmos em Grafos (6º. Semestre)
Aqui na disciplina faremos exercícios procurando por caminhos e resolvendo pequenos problemas em estruturas de grafos, para motivar o uso de grafos e o aprendizado dos algoritmos na disciplina de Algoritmos em Grafos
INSTITUTO DE COMPUTAÇÃO - UFF 96
![Page 97: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/97.jpg)
REFERÊNCIA
Celes, W.; Cerqueira, R.; Rangel, J.L. Introdução a Estruturas de Dados com Técnicas de Programação em C, 2a. ed. Elsevier. Cap. 22
INSTITUTO DE COMPUTAÇÃO - UFF 97
![Page 98: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/98.jpg)
AGRADECIMENTOS
Material baseado nos slides de Renata Galante, UFRGS
Implementação em C baseada no material de Isabel Rosseti, UFF
INSTITUTO DE COMPUTAÇÃO - UFF 98
![Page 99: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/99.jpg)
IMPRESSÃO DO GRAFO (IMPLEMENTAÇÃO RECURSIVA)void imprime_recursivo(TGrafo *g){
if(g != NULL){printf("Vértice: %d:\n", g->id_vertice);printf("Vizinhos: ");TVizinho *v = g->prim_vizinho;while(v){
printf("%d ", v->id_vizinho);v = v->prox;
}printf("\n\n");imprime_recursivo(g->prox);
}}
INSTITUTO DE COMPUTAÇÃO - UFF 99
![Page 100: GRAFOS E DIGRAFOSvanessa/material/ed/06-Grafos.pdfINSTITUTO DE COMPUTAÇÃO -UFF 26 v1 v2 v3 v4 v5 v6 v7 v8 2 0 4 4 4 3 3 4 Vértices com grau 0são ditos vértices isolados DEFINIÇÕES](https://reader035.fdocumentos.com/reader035/viewer/2022081620/6102739079d2112f03059c77/html5/thumbnails/100.jpg)
LIBERAÇÃO DA ESTRUTURA (IMPLEMENTAÇÃO RECURSIVA)void libera_recursivo(TGrafo *g){
if(g != NULL){libera_vizinho_recursivo(g->prim_vizinho);libera_recursivo(g ->prox);free(g);
}}
void libera_vizinho_recursivo(TVizinho *v){if(v != NULL) {
libera_vizinho_recursivo(v->prox);free(v);
}}
INSTITUTO DE COMPUTAÇÃO - UFF 100