Sunteți pe pagina 1din 3

ICMC USP SCC-216 Modelagem Computacional em Grafos Prof. Dr. Rosane Minghim 1 sem.

em. 2013 Estagirio PAE: Henry Heberle / Monitor: Denis Moreira dos Reis Laboratrio 1 Exerccio 1 Fazer um TAD para grafos orientados com operaes bsicas em ANSI C ou C++,
sendo obrigatrio haver os mtodos/funes para: 1. Criar grafo; 2. Adicionar aresta, e seu peso; 3. Remover aresta; 4. Alterar peso de uma aresta; 5. Retornar todos os vrtices do grafo; 6. Retornar lista de adjacentes a um vrtice; 7. Verificar se uma determinada aresta existe; Adicionalmente desenvolver funes para: 1. Adicionar vrtice; 2. Remover vrtice; 3. Retornar quantas arestas (grau) partem de um vrtice; 4. Retornar quantas arestas (grau) chegam a um vrtice; 5. Imprimir a matriz de adjacncia correspondente (no necessrio haver a estrutura implementada); 6. Imprimir a lista de adjacncia correspondente (no necessrio haver a estrutura implementada); CONCEITOS Classificao de Arestas: Arestas podem ser classificadas com relao travessia em profundidade como: 1 Aresta de rvore: pertence rvore DFS. 2 Aresta de avano: no pertence rvore DFS mas conecta um n a um seu descendente que na rvore DFS. 3 Aresta de retorno: conecta um n a um seu antecessor na rvore DFS. 4 Arestas de cruzamento: conectam dois ns na mesma rvore DFS ou em rvores diferentes do mesmo grafo, e no de avano ou de retorno. Classificao de Aresta durante a Travessia. Pode-se detectar a classe de uma aresta durante a travessia pela cor do n que uma aresta alcana, da seguinte forma: 1 N branco: aresta de rvore. 2 N cinza: aresta de retorno. 3 N preto: em uma aresta (u,v) percorrida durante a DFS, ela de avano se u foi descoberto antes de v, e de cruzamento se v foi descoberto antes de u. Deteco de Ciclos Se uma aresta de retorno encontrada durante a DFS, ento o grafo cclico.

Exerccio 2 (2 pontos) Implementar a Busca em profundidade (DFS). Dado um Grafo G


orientado e sem laos, armazenado em forma de caso de teste no SQTPM, fazer um programa que: 1. Retorne a rvore realizada pela DFS; 2. Faa a contagem de arestas de rvore, retorno, avano e cruzamento. Observaes: 1. A identificao dos vrtices por ordem numrica a partir do 0; 2. Entre os vizinhos de um n, a travessia comea em ordem do de menor para o maior ndice; 3. A travessia se inicia no vrtice de menor identificao; 4. O predecessor da raiz da rvore ela mesma; 5. Todos os vrtices do grafo so alcanveis a partir do n inicial da busca; 6. A DFS facilmente adaptada para identificar as classificaes; 7. O programa deve ser um nico arquivo .c ou .cpp. A entrada para o programa um grafo e ter a forma deste exemplo (o n de vrtices, o de arestas e em seguida elas): 6 9 01 02 12 14 23 30 35 45 54

0 3 2

O desenho do grafo acima apenas uma ilustrao. Perceba que foram identificadas as arestas de avano (A) e de retorno (R), bem como as arestas de rvore (destacadas em preto). Neste exemplo no houve aresta de cruzamento. Como sada, primeiro deve ser feita a representao da rvore de busca dada pela lista de predecessores, e posteriormente a contagem de arestas em cada uma das classificaes: aresta de rvore, retorno, avano e cruzamento, nesta ordem.

001253 5 2 2 0

Se houver qualquer dvida sobre o SQTPM ou sobre os exerccios, entre em contato com o estagirio PAE.

O exerccio/trabalho individual. Se for identificada cpia ou utilizao de bibliotecas de grafos prontas, a nota do aluno (se permitiu a cpia ou se copiou), para o referente exerccio ou trabalho, passa a ser 0 (zero).

S-ar putea să vă placă și