{[ promptMessage ]}

Bookmark it

{[ promptMessage ]}

4 faça a busca em profundidade nos grafos abaixo

Info icon This preview shows pages 8–11. Sign up to view the full content.

View Full Document Right Arrow Icon
4 Faça a busca em profundidade nos grafos abaixo, começando em v. 8
Image of page 8

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
v v v • • a b a c b b d e e d c c d e f g 5 Em orientação a objetos, os métodos de uma classe B são os métodos definidos em B e aqueles herdados das superclasses de B, o que pode ser representado por um grafo. Sendo met (B) o conjunto dos métodos definidos em uma classe (sem contar os métodos herdados) e super (B) o conjunto das superclasses de B, faça um algoritmo que retorne todos os métodos de uma dada classe usando a representação em grafos. Considere que todas as classes definam métodos com nomes diferentes entre si. 6 Explique como BFS pode ser usado para descobrir a distância mínima, em número de arestas, entre dois vértices de um grafo. 7 Faça um algoritmo que elimina de um programa todas as subrotinas que nunca poderão ser chamadas em execução. 8 Encontre um caminho entre a e j no grafo abaixo que passe por todas as arestas exatamente uma vez. b c a j d h i e g f 9 Faça um algoritmo que particione um grafo G em seus componentes conexos G 1 , G 2 , … G n . 10 Faça DFS e BFS nos grafos abaixo, começando em v. 9
Image of page 9
• • v • • v (b) • • v (a) (c) 11 Encontre, se houver, um circuito em cada um dos grafos acima. 12 Faça um algoritmo para coleta de lixo em uma representação do programa em forma de grafos e outras estruturas de sua escolha. 13 Um sistema de computação (banco de dados, sistema operacional) possui uma senha de acesso para cada usuário que dá direito ao uso do sistema. Um usuário pode dar a outro o direito de usar sua área (ou conta). Se x puder usar a área de y e y puder usar a de z, então x poderá usar a área de z. Usando uma entrada de dados de sua escolha, faça um algoritmo que retorna true se um usuário A pode usar a área de B. 14 Dado um grafo G = (V, E), construa um grafo G’ = (V, E’) tal que (v, w) E’ se existe caminho de v para w em G. Usando esta idéia, resolva o algoritmo anterior em tempo constante, após pré-processar os dados de entrada. 15 Prove que, dadas seis pessoas, uma de duas coisas acontece: ou três delas se conhecem ou três não se conhecem. 16 Considere o seguinte algoritmo para construir uma árvore de DFS para um grafo G: Algoritm Build_DFS_Tree(G, v) Entrada: G = (V, E) e v um vértice de V Saída: T, a árvore DFS de T, inicialmente vazia. para cada vértice, v.DFS é inicializado com um número de busca begin Inicialmente, DFS_number = 1; use DFS com o seguinte preWork: v.DFS = DFS_number; DFS_number++; e o seguinte postWork: if w não estava marcada, adicione a aresta (v, w) em T end Um vértice v é chamado de ancestral de w em T com raiz r se v está no caminho único entre r e w. Então w é um descendente de v.
Image of page 10

Info icon This preview has intentionally blurred sections. Sign up to view the full version.

View Full Document Right Arrow Icon
Image of page 11
This is the end of the preview. Sign up to access the rest of the document.

{[ snackBarMessage ]}