Melhores momentos AULA 1
|
|
- Mauro Pais Barroso
- 6 Há anos
- Visualizações:
Transcrição
1 Melhores momentos AULA
2 Digrafos digrafo = de vértices e conjunto de arcos arco = par ordenado de vértices Exemplo: v e w são vértices e v-w é um arco b d a f c e
3 Especicação Digrafos podem ser especicados através de sua lista de arcos Exemplo: a b c d e f d-f b-d a-c b-e e-f a-b
4 Grafos grafo = digrafo simétrico aresta = par de arcos anti-paralelos Exemplo: b-a e a-b formam uma aresta b d a f c e
5 Grafos Um grafo é um digrafo simétrico Exemplo: representação usual b d a f c e
6 Estrutura de dados Vértices são representados por objetos do tipo Vertex. Arcos sao representados por por objetos do tipo Arc #dene Vertex int typedef struct { Vertex v; } Arc; Vertex w;
7 Grafos no computador Usaremos duas representações clássicas: matriz de adjacência (agora) vetor de listas de adjacência (próximas aulas)
8 Matriz de adjacência de digrafo Matriz de adjacência de um digrafo tem linhas e colunas indexadas por vértices: adj[v][w] = se v-w é um arco adj[v][w] = em caso contrário Exemplo: Consumo de espaço: Θ(V ) fácil de implementar
9 Estrutura digraph V = número de vértices A = número de arcos adj = ponteiro para a matriz de adjacência struct digraph { int V; int A; int **adj; }; typedef struct digraph *Digraph;
10 Digrafo Digraph G
11 G 3 5 Estruturas de dados V A adj
12 MATRIXint Aloca uma matriz com linhas..r- e colunas..c-, cada elemento da matriz recebe valor val int **MATRIXint (int r, int c, int val) { Vertex i, j; int **m = malloc(r * sizeof(int *)); for (i = ; i < r; i++) 3 m[i] = malloc(c * sizeof(int)); for (i = ; i < r; i++) 5 for (j = ; j < c; j++) 6 m[i][j] = val; 7 return m; }
13 Consumo de tempo linha número de execuções da linha = = Θ() = r + = Θ(r) 3 = r = Θ(r) = r + = Θ(r) 5 = r (c + ) = Θ(r c) 6 = r c = Θ(r c) total Θ() + 3 Θ(r) + Θ(r c) = Θ(r c)
14 Conclusão Supondo que o consumo de tempo da função malloc é constante O consumo de tempo da função MATRIXint é Θ(r c).
15 DIGRAPHinit Devolve (o endereço de) um novo digrafo com vértices,..,v- e nenhum arco. Digraph DIGRAPHinit (int V) { Digraph G = malloc(sizeof *G); G>V = V; G>A = ; 3 G>adj = MATRIXint(V,V,); return G; }
16 AULA
17 Funções básicas (continuação) S 7.3
18 DIGRAPHinsertA Insere um arco v-w no digrafo G. Se v == w ou o digrafo já tem arco v-w, não faz nada void DIGRAPHinsertA(Digraph G,Vertex v,vertex w)
19 DIGRAPHinsertA Insere um arco v-w no digrafo G. Se v == w ou o digrafo já tem arco v-w, não faz nada void DIGRAPHinsertA(Digraph G,Vertex v,vertex w) { } if (v!= w && G>adj[v][w] == ) { } G>adj[v][w] = ; G>A++;
20 DIGRAPHremoveA Remove do digrafo G o arco v-w Se não existe tal arco, a função nada faz. void DIGRAPHremoveA(Digraph G,Vertex v,vertex w)
21 DIGRAPHremoveA Remove do digrafo G o arco v-w Se não existe tal arco, a função nada faz. void DIGRAPHremoveA(Digraph G,Vertex v,vertex w) { } if (G>adj[v][w] == ) { } G>adj[v][w] = ; G>A;
22 DIGRAPHshow : 3 : : 3: 5 : 5 5:
23 DIGRAPHshow Para cada vértice v de G, imprime, em uma linha, os vértices adjacentes a v void DIGRAPHshow (Digraph G) {
24 DIGRAPHshow Para cada vértice v de G, imprime, em uma linha, os vértices adjacentes a v void DIGRAPHshow (Digraph G) { Vertex v, w; for (v = ; v < G>V; v++) { printf("%d:", v); 3 for (w = ; w < G>V; w++) if (G>adj[v][w] == ) 5 printf("%d", w); 6 printf("\n"); } }
25 Consumo de tempo linha número de execuções da linha = V + = Θ(V) = V = Θ(V) 3 = V (V + ) = Θ(V ) = V V = Θ(V ) 5 V V = O(V ) 6 = V = Θ(V) total 3 Θ(V) + O(V ) + 3 Θ(V ) = Θ(V )
26 Conclusão O consumo de tempo da função DIGRAPHShow é Θ(V ).
27 Funções básicas para grafos
28 Funções básicas para grafos #dene GRAPHinit DIGRAPHinit #dene GRAPHshow DIGRAPHshow Função que insere uma aresta v-w no grafo G void GRAPHinsertE (Graph G, Vertex v, Vertex w)
29 Funções básicas para grafos #dene GRAPHinit DIGRAPHinit #dene GRAPHshow DIGRAPHshow Função que insere uma aresta v-w no grafo G void GRAPHinsertE (Graph G, Vertex v, Vertex w) { } DIGRAPHinsertA(G, v, w); DIGRAPHinsertA(G, w, v); Exercício. Escrever a função GRAPHremoveE
30 Caminhos em digrafos S 7.
31 Caminhos Um caminho num digrafo é qualquer seqüência da forma v v v...v k v p, onde v k -v k é um arco para k =,..., p. Exemplo: é um caminho com origem é término 5 3 5
32 Caminhos simples Um caminho é simples se não tem vértices repetidos Exemplo: é um caminho simples de a 5 3 5
33 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = a resposta é SIM
34 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = a resposta é SIM 3 5
35 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 5 e t = a resposta é NÃO
36 DIGRAPHpath Recebe um digrafo G e vértices s e t e devolve se existe um caminho de s a t ou devolve em caso contrário Supõe que o digrafo tem no máximo maxv vértices. int DIGRAPHpath (Digraph G, Vertex s, Vertex t)
37 Caminhos em digrafos S 7.
38 Caminhos Um caminho num digrafo é qualquer seqüência da forma v v v...v k v p, onde v k -v k é um arco para k =,..., p. Exemplo: é um caminho com origem é término 5 3 5
39 Caminhos simples Um caminho é simples se não tem vértices repetidos Exemplo: é um caminho simples de a 5 3 5
40 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = a resposta é SIM
41 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = e t = a resposta é SIM 3 5
42 Procurando um caminho Problema: dados um digrafo G e dois vértices s e t decidir se existe um caminho de s a t Exemplo: para s = 5 e t = a resposta é NÃO
43 DIGRAPHpath Recebe um digrafo G e vértices s e t e devolve se existe um caminho de s a t ou devolve em caso contrário Supõe que o digrafo tem no máximo maxv vértices. int DIGRAPHpath (Digraph G, Vertex s, Vertex t)
44 DIGRAPHpath(G,,)
45 DIGRAPHpath(G,,)
46 pathr(g,)
47 pathr(g,)
48 pathr(g,)
49 pathr(g,)
50 pathr(g,)
51 pathr(g,)
52 pathr(g,)
53 pathr(g,)
54 pathr(g,)
55 pathr(g,)
56 pathr(g,5)
57 pathr(g,5)
58 pathr(g,5)
59 pathr(g,)
60 pathr(g,)
61 pathr(g,)
62 pathr(g,)
63 pathr(g,3)
64 pathr(g,3)
65 pathr(g,3)
66 pathr(g,3)
67 pathr(g,)
68 pathr(g,)
69 pathr(g,)
70 DIGRAPHpath(G,,)
71 DIGRAPHpath(G,,3)
72 DIGRAPHpath(G,,3)
73 pathr(g,)
74 pathr(g,)
75 pathr(g,)
76 pathr(g,)
77 pathr(g,)
78 pathr(g,)
79 pathr(g,)
80 pathr(g,)
81 pathr(g,5)
82 pathr(g,5)
83 pathr(g,5)
84 pathr(g,)
85 pathr(g,)
86 DIGRAPHpath(G,,3)
87 DIGRAPHpath static int lbl[maxv]; int DIGRAPHpath (Digraph G, Vertex s, Vertex t) { Vertex v; for (v = ; v < G>V; v++) lbl[v] = ; 3 pathr(g,s); if (lbl[t] == ) return ; 5 else return ; }
88 pathr Visita todos os vértices que podem ser atingidos a partir de v void pathr (Digraph G, Vertex v)
89 pathr Visita todos os vértices que podem ser atingidos a partir de v void pathr (Digraph G, Vertex v) { Vertex w; lbl[v] = ; for (w = ; w < G>V; w++) 3 if (G>adj[v][w] == ) if (lbl[w] == ) 5 pathr(g, w); }
90 DIGRAPHpath(G,,) - pathr(g,) - pathr(g,) - pathr(g,) - -5 pathr(g,5) pathr(g,3) existe caminho
91 DIGRAPHpath(G,,3) - pathr(g,) - pathr(g,) - -5 pathr(g,5) 5- nao existe caminho
92 Consumo de tempo Qual é o consumo de tempo da função DIGRAPHpath?
93 Consumo de tempo Qual é o consumo de tempo da função DIGRAPHpath? linha número de execuções da linha = V + = Θ(V) = V = Θ(V) 3 = =???? = = Θ() 5 = = Θ() total = Θ() + Θ(V) +??? = Θ(V) +????
94 Conclusão O consumo de tempo da função DIGRAPHpath é Θ(V) mais o consumo de tempo da função PathR.
95 Consumo de tempo Qual é o consumo de tempo da função PathR?
96 Consumo de tempo Qual é o consumo de tempo da função PathR? linha número de execuções da linha V = O(V) V (V + ) = O(V ) 3 V V = O(V ) V V = O(V ) 5 V = O(V) total = O(V) + 3 O(V ) = O(V )
97 Conclusão O consumo de tempo da função PathR para matriz de adjacência é O(V ). O consumo de tempo da função DIGRAPHpath para matriz de adjacência é O(V ).
Melhores momentos AULA 5
Melhores momentos AULA 5 Vetor de listas de adjacência de digrafos Na representação de um digrafo através de listas de adjacência tem-se, para cada vértice v, uma lista dos vértices que são vizinhos v.
Leia maisRepresentações de Grafos
Representações de Grafos Teoria dos Grafos 1 É possível diversas representações dos grafos. Vamos estudar as três utilizadas mais comumente: as matrizes de adjacência, as listas de adjacência e as multilistas
Leia maisAED Algoritmos e Estruturas de Dados LEEC /2007. Teoria de Grafos e Algoritmos em Grafos
AED Algoritmos e Estruturas de Dados LEEC - 2006/2007 Teoria de Grafos e Algoritmos em Grafos Grafos - O que éum grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices
Leia maisGRAFOS Aula 03 Representações de Grafos Max Pereira
Ciência da Computação GRAFOS Aula 03 Representações de Grafos Max Pereira A maior vantagem de um grafo é a sua representação visual da informação. Mas para a manipulação e armazenamento em um computador,
Leia maisMelhores momentos AULA 14
Melhores momentos AULA Problema O algoritmo de Dijkstra resolve o problema da SPT: Dado um vértice s de um digrafo com custos não-negativos nos arcos, encontrar uma SPT com raiz s 5 5 5 Simulação 5 Simulação
Leia maisLISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados
LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS Listas Lineares Como visto anteriormente, as operações básicas para o nosso TAD Lista Linear são: FLVazia Vazia Retira Insere Imprime A implementação através de arrays
Leia maisGrafos - O que é um grafo? Algoritmos e Estruturas de Dados LEE 2013/14. Objecto abstracto Dois tipos de entidades. Vértices representam
Algoritmos e Estruturas de Dados LEE 2013/14 Teoria de Grafos e Algoritmos em Grafos 1ª Parte Grafos - O que é um grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices
Leia maisGrafos - O que é um grafo? Algoritmos e Estruturas de Dados MEEC 2012/13. Objecto abstracto Dois tipos de entidades. Vértices representam
Algoritmos e Estruturas de Dados MEEC 01/1 Teoria de Grafos e Algoritmos em Grafos 1ª Parte Grafos - O que é um grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices
Leia maisCAL ( ) MIEIC/FEUP Grafos: Introdução (Março, 2011)
1 Algoritmos em Grafos: Introdução R. Rossetti, A.P. Rocha, A. Pereira, P.B. Silva, T. Fernandes CAL, MIEIC, FEUP Março de 2011 Índice 2 Revisão de conceitos e definições Exemplificar aplicações Representação
Leia maisGrafos - Representação
Grafos - Representação É importante salientar outra diferença relevante entre a representação de matriz de adjacência e a representação ligada de grafos. Na representação de matriz está implícita a possibilidade
Leia maisGRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?
8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações
Leia maisLinguagem C: Ponteiros - Alocação Dinâmica
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Ponteiros Alocação Dinâmica de Memória 2 3 4 Organização Ponteiros Alocação
Leia maisEstruturas de Dados Filas
Estruturas de Dados Filas Roteiro Introdução Definição de Fila (Queue) Aplicações Operações sobre Fila Implementação de Fila Com vetores Com listas encadeadas Exercícios Introdução Estamos acostumados
Leia maisGrafos - Aplicação. Implemente na linguagem C a função procurarcaminho(...).
434 Grafos - Aplicação Uma estratégia para a solução é a seguinte: crie um grafo com as cidades como nós e as estradas como arcos. Para achar um caminho de comprimento nr do nó A ao nó B, procure um nó
Leia maisLinguagem C: Listas Encadeadas
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução 2 3 Organização Introdução 1 Introdução 2 3 Introdução Introdução
Leia maisCaminhos em Grafos. Grafos - Caminho Simples (1) (Cliente para M. de Adj.) static int visited[maxv];
Caminhos em rafos Caminho simples Dados dois vértices num grafo, saber se estão ligados por um caminho; Determinar se o caminho existe ou calculá-lo explicitamente; Caminho de Hamilton Dados dois vértices
Leia maisTeoria dos Grafos. Teoria dos Grafos. Profa. Sheila Morais de Almeida DAINF-UTFPR-PG. agosto
Teoria dos Grafos Introdução Profa. Sheila Morais de Almeida DAINF-UTFPR-PG agosto - 2017 O que é Grafo? Definição formal Um grafo G = (V (G), E(G)) é uma estrutura matemática que consiste de dois conjuntos:
Leia maisDoutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA
Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo
Leia mais03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II
03 Grafos: percurso, ponderação e caminhos SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir
Leia maisSCC122 - Estruturas de Dados. Lista Estática Seqüencial
SCC122 - Estruturas de Dados Lista Estática Seqüencial Lista Uma lista é uma estrutura que armazena elementos de forma alinhada, ou seja, com elementos dispostos um após o outro. Ex.: Listas de nomes,
Leia maisGrafos Orientados (digrafos)
Grafos Orientados (digrafos) Grafo Orientado ou digrafo Consiste em um grafo G = (V,A) onde V = {v 1,, v n } é um conjunto de vértices e A = {a 1,, a k } é um conjunto de arcos tais que a k, k=1,,m é representado
Leia maisPAA-DCC-UFAM. Grafos. Universidade Federal do Amazonas Departamento de Eletrônica e Computação
Grafos Universidade Federal do Amazonas Departamento de Eletrônica e Computação Grafos () Um grafo é composto por um conjunto de vértices e um conjunto de arestas Cada aresta liga dois vértices do grafo
Leia maisINF1007: Programação 2 8 Listas Encadeadas. (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 8 Listas Encadeadas (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Motivação Listas encadeadas Implementações recursivas Listas de tipos estruturados (c) Dept. Informática
Leia maisLista Encadeada (Linked List)
Lista Encadeada (Linked List) As listas ou listas encadeadas são a estrutura de dados mais simples concebível excetuando-se naturalmente os arrays. Listas encadeadas nada mais são que uma seqüência de
Leia maisInstituto de C. Linguagem C: Listas. Luis Martí Instituto de Computação Universidade Federal Fluminense -
Instituto de C Linguagem C: Listas Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Listas Encadeadas Definição Funções básicas Tópicos Principais
Leia maisCAP4. ELEMENTOS DA TEORIA DE GRAFOS. Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E) , sendo:
Matemática Discreta ESTiG\IPB Cap4. Elementos da Teoria de Grafos pg 1 CAP4. ELEMENTOS DA TEORIA DE GRAFOS Grafo [graph]. Estrutura que consiste num par ordenado de conjuntos, G ( V, E), sendo: Exemplos
Leia maisGrafos - O que é um grafo? Algoritmos e Estruturas de Dados LEE 2014/15. Algoritmos e Estruturas de Dados - C. Teoria de Grafos e Algoritmos em Grafos
Algoritmos e Estruturas de Dados LEE / Teoria de Grafos e Algoritmos em Grafos Grafos - O que é um grafo? Objecto abstracto Dois tipos de entidades Nós ou Vértices Ramos ou Arestas Vértices representam
Leia maisINF 1010 Estruturas de Dados Avançadas
INF Estruturas de Dados Avançadas Grafos // DI, PUC-Rio Estruturas de Dados Avançadas. Algoritmo de Dijkstra 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 Algoritmo de Dijkstra 8 8 8 8 8
Leia maisINF 1620 P1-10/04/02 Questão 1 Nome:
INF 1620 P1-10/04/02 Questão 1 Considere uma disciplina que adota o seguinte critério de aprovação: os alunos fazem duas provas (P1 e P2) iniciais; se a média nessas duas provas for maior ou igual a 5.0,
Leia maisTeoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.
Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,
Leia maisMétodos Computacionais. Fila
Métodos Computacionais Fila Definição de Fila Fila é uma estrutura de dados dinâmica onde: Inserção de elementos se dá no final e a remoção no início O primeiro elemento que entra é o primeiro que sai
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisFilas Exemplo de Aplicação
Filas Exemplo de Aplicação Uma aplicação interessante para filas é a ordenação por distribuição, descrita a seguir. Seja uma lista l composta de n chaves, cada qual representada por um inteiro numa base
Leia maisINF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15
INF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 15 1. Um número racional é expresso por dois inteiros: um numerador e um denominador (este último diferente de zero!). Implemente um TAD para representar números
Leia maisUNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Leia maisMatrizes Esparsas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista
Matrizes Esparsas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto
Leia maisListas Ligadas (Encadeadas) Listas Simplesmente Encadeadas
Listas Ligadas (Encadeadas) Matrizes são estruturas de dados muito úteis fornecidas nas linguagens de programação. No entanto, elas têm pelo menos duas limitações: 1- Seu tamanho tem que ser conhecido
Leia maisMódulo 10 Listas Encadeadas
Estruturas de Dados Módulo 10 Listas Encadeadas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus
Leia maisAlgoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 6 Modularização Método que consiste em organizar programas grandes em pequenas partes (módulos) Cada módulo tem
Leia maisDAINF - Departamento de Informática
DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.
Leia maisEstruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011
Estruturas de Dados Aula 12: Outras Implementações de Listas 18/04/2011 Fontes Bibliográficas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisAlgoritmos e Estruturas de Dados. Prof. Marcelo Zorzan Profa. Melissa Zanatta
Algoritmos e Estruturas de Dados Prof. Marcelo Zorzan Profa. Melissa Zanatta Assuntos da Aula Alocação de Memória Alocação estática de memória Alocação dinâmica de memória Malloc, Calloc, Free, Realloc
Leia maisFontes Bibliográficas. Listas Circulares. Função Imprime
Fontes Bibliográficas Estruturas de Dados Aula 12: Outras Implementações de Listas Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo
Leia maisDefinição e Conceitos Básicos
Definição e Conceitos Básicos Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Conceitos Básicos Em grafos ocorrem dois tipos de elementos: Vértices ou nós;
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Grafos Conceitos gerais e representações Algoritmos em grafos Exploração sistemática em largura Caminhos
Leia mais01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II
01 Grafos: parte 1 SCC0503 Algoritmos e Estruturas de Dados II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2011/1 Moacir Ponti Jr. (ICMCUSP) 01
Leia maisVolmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45
Volmir Eugênio Wilhelm Departamento de Engenharia de Produção UFPR 45 Introdução a Grafos Muitos problemas de otimização podem ser analisados utilizando-se uma estrutura denominada grafo ou rede. Problemas
Leia maisGABARITO EXERCÍCIOS ÁRVORES arv.h struct noarv { int info; struct noarv * esq; struct noarv * dir; }; typedef struct noarv NoArv;
GABARITO EXERCÍCIOS ÁRVORES arv.h struct noarv int info; struct noarv * esq; struct noarv * dir; ; typedef struct noarv NoArv; NoArv * arv_cria(int v, NoArv * e, NoArv * d); NoArv * arv_insere(noarv *
Leia maisTeoria dos Grafos. Aula 5 - Estruturas de Dados para Grafos. Profª. Alessandra Martins Coelho. março/2013
Teoria dos Grafos Aula 5 - Estruturas de Dados para Grafos Profª. Alessandra Martins Coelho março/2013 Estrutura é o que caracteriza o próprio grafo e independe da forma como ele é representado. A representação
Leia maisCurso de C. Memória Dinâmica 17/05/2010 16:33 1
Curso de C Memória Dinâmica 17/05/2010 16:33 1 Memória Dinâmica Curso C - IC/UNICAMP Roteiro: Memória dinâmica Vetores dinâmicos Listas ligadas 17/05/2010 16:33 @Arnaldo V. Moura, Daniel F. Ferber 2 Conceitos:
Leia maisTeoria dos Grafos Aula 2
Teoria dos Grafos Aula 2 Aula passada Logística, regras Objetivos Grafos, o que são? Formando pares Encontrando caminhos Aula de hoje Outro problema real Definições importantes Algumas propriedades Grafo
Leia maisINF 1620 P3-25/11/05 Questão 1 Nome:
INF 1620 P3-25/11/05 Questão 1 Dizemos que uma matriz quadrada é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos de sua diagonal principal
Leia maisListas e matrizes esparsas. SCC122 Estruturas de Dados
Listas e matrizes esparsas SCC Estruturas de Dados Matriz: definição Matriz é um arranjo (tabela) retangular de números dispostos em linhas e colunas 8 9 6 4 7 3 3x3 B 8 9 4 3 5 3 4 3x4 A nº de elementos
Leia maisMétodos Computacionais. Árvores
Métodos Computacionais Árvores Árvores Vetores e Listas são ótimos para representar estrutura de dados lineares, mas não para modelar dados hierárquicos Exemplos de dados hierárquicos: sistema de arquivos
Leia maisEstruturas de Dados. Módulo 6 Matrizes. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 6 Matrizes 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisEstrutura de Dados e Algoritmos e Programação e Computadores II. Aula 10: Introdução aos Grafos
Estrutura de Dados e Algoritmos e Programação e Computadores II Aula 10: Introdução aos Grafos História O assunto que se constitui no marco inicial da teoria de grafos é na realidade um problema algorítmico.
Leia maisMC-102 Algoritmos e Programação de Computadores
MC-102 Algoritmos e Programação de Computadores Prof. Ariel Vargas Unicamp Arquivos Binários Arquivos Arquivos Texto Podem ser manipulados por um editor de texto comum Os dados são gravados como caracteres
Leia maisComputação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 23a de junho de 2008
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 23a de junho de 2008 Nome: Assinatura: 1 a Questão: (2.0 pontos) Números Aleatórios Escreva um programa que gere N números
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisProgramação de Computadores II
Programação de Computadores II 2017.2 Relembrando... Linguagem C Relembrando... Linguagem C Declaração básica de um programa Relembrando... Linguagem C Declaração básica de um programa include Relembrando...
Leia maisProfessora Jeane Melo
Professora Jeane Melo Roteiro Lista Encadeada Alocação: Estática x Dinâmica O que são Ponteiros? Ponteiros Variáveis que Armazenam Endereços de Memória Mas, toda variável não é armazenada na memória? Ponteiros
Leia maisInstituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados
Instituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados Ano Lectivo de 2004/2005 2 o Semestre 1 o Teste A - 30 de Abril de 2005 Duração: 2h - O teste é sem consulta. - Para cada questão
Leia maisLinguagem C: Árvores Binarias
Instituto de C Linguagem C: Árvores Binarias Luis Martí Instituto de Computação Universidade Federal Fluminense lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Introdução Árvores binárias Implementação
Leia maisAlgoritmos e Estruturas de Dados
Introdução aos Algoritmos e Estruturas de Dados Repescagem 2 o Teste - B Ano lectivo: 2010/2011 2 o Semestre RESOLUÇÃO DA REPESCAGEM DO 2 o TESTE I. (2.5 + 2.5 + 3.0 = 8.0 val.) I.a) Considere o tipo Voo
Leia maisAlocação dinâmica de Memória
Alocação dinâmica de Memória Vetores e Arrays A variável vetor é uma variável que armazena outras variáveis, no caso tem que ser do mesmo tipo. Exemplo Criar um cont Declarar um vet com o tamanho Laço
Leia maisAlgoritmo de Dijkstra
lgoritmo de Dijkstra Caminhos mínimos em Grafos Considere um grafo orientado ponderado G = (V,E) em que cada aresta possui um rótulo não negativo associado que define o custo da aresta, e um dos vértices
Leia maisProgramação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio Árvores Dados organizados de maneira hierárquica Exemplos: arquivos em diretórios, subdivisão de espaço 2D em um
Leia maisConceitos Básicos da Teoria de Grafos
Conceitos Básicos da Teoria de Grafos Universidade Federal do Pampa - UNIPAMPA Engenharia da Computação Estrutura de Dados Profª Sandra Piovesan Grafos Uma noção simples, abstrata e intuitiva. Representa
Leia maisDoutorado em Ciência da Computação. Algoritmos e Grafos. Raimundo Macêdo LaSiD/DCC/UFBA
Doutorado em Ciência da Computação Algoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UFBA Grafo Completo Grafo simples cujos vértices são dois a dois adjacentes. Usa-se a notação K n para um grafo completo
Leia mais/*(Atenção: Em se tratando de uma lista estaticamente alocada, temos utilizado a estratégia de passa o tamanho máximo do vetor.)*/
========================TDA.H #include "info.h" #define TRUE 1 #define FALSE 0 #define INI_LISTA 1 #define OK 1; #define NOK -1; typedef struct nolista{ info dados; struct nolista *prox; struct nolista
Leia maisLista de Exercícios de CES-11 CTA - ITA - IEC
Lista de Exercícios de CES11 CTA ITA IEC Importante: Não vale nota, ou seja, não é preciso entregar! A. Passagem de parâmetros, escopo de variáveis, recursão 1. Analise o código abaixo. Qual é a sua saída?
Leia maisBCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 02: Alocação Dinâmica de Memória Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes
Leia maismax1: 20,max2:+ max1:15, max2:20 max1:30,max2:32,max3:35 max1:40,max2:+
Estruturas de Dados Algumas Respostas da Lista 4 Angelo Ciarlini 1- Mostre o aspecto de uma árvore 2-3 que armazena números inteiros após a inserção dos números 30, 20, 10, 40, 15, 35 e 32, nesta ordem.
Leia maisHeap Sort. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1
Heap Sort Algoritmos e Estruturas de Dados Verão 2012 1 Árvores As árvores são estruturas de dados usadas em diversas aplicações: Bases de dados de grande dimensão. Reconhecimento de frases geradas por
Leia maisMétodos Computacionais. Vetores e Matrizes Dinâmicas
Métodos Computacionais Vetores e Matrizes Dinâmicas Vetores Um programa para o cálculo da média Média m n i= = 1 n x i Variância v n i= = 1 ( x i n m) 2 A forma mais simples de estruturar um conjunto de
Leia maisEstruturas de Dados. Módulo 12 - Filas. 9/8/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 12 - Filas 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisÁrvore Binária de Busca. Prof. César Melo
Árvore Binária de Busca Prof. César Melo Introdução O algoritmo de busca binária em vetores tem bom desempenho e deve ser usado quando temos os dados já ordenados. No entanto, se precisarmos inserir e
Leia mais1. Para cada pergunta selecione uma opção. Resposta correta +2, incorreta -1. [12 pontos]
* Universidade Federal do ABC Avaliação: Prova 01 (40 pontos) Disciplina: MCTA028 - Programação Estruturada Turma: Noturno A1 e A2 Professor: Jesús P. Mena-Chalco Data: 25/10/2016 Nome completo: RA: Instruções:
Leia maisComputação I (MAB120) DCC/UFRJ
Computação I (MAB120) DCC/UFRJ Aula 12: vetores 13 de maio de 2016 Objetivos dessa aula Apresentar o conceito de Tipos Compostos Homogêneos Apresentar o conceito de vetores Apresentar as operações básicas
Leia maisListas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I
Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento
Leia maisINF 1620 P1-04/10/03 Questão 1 Nome:
INF 1620 P1-04/10/03 Questão 1 a) Implemente uma função para calcular as raízes de uma equação do segundo grau do tipo ax 2 +bx+c=0. O protótipo dessa função deve ser: void raizes (float a, float b, float
Leia maisAULA 14 ESTRUTURA DE DADOS
AULA 14 ESTRUTURA DE DADOS Matriz esparsa Norton T. Roman & Luciano A. Digiampietri Matriz Uma matriz bidimensional é um conjunto de elementos (ou tabela) composta por m linhas e n colunas. Matriz Uma
Leia maisProva Final de Linguagens de Programação - DCC024B - Sistemas de Informação
Prova Final de Linguagens de Programação - DCC024B - Sistemas de Informação Nome: Eu dou minha palavra de honra que não trapacearei neste exame. Número de matrícula: As regras do jogo: A prova é sem consulta.
Leia maisINF1007 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4
INF1 - PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4 1. Considere uma aplicação que utiliza pontos, retângulos e círculos para representações gráficas. Um ponto é composto pelas suas coordenadas x e y, um retângulo
Leia maisSistema Rodoviário Tabajara
Universidade Federal do Espírito Santo Departamento de Informática Est. de Informação (INF02827) & Est. de Dados (INF01906) 2 o Trabalho Prático Período: 2008/2 Prof a Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br
Leia maisExercícios Capítulos 5 e 6
Estruturas de Dados Exercícios Capítulos e 6 6//6 (c) Dept. Informática - PUC-Rio Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus () Capítulo
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 14 Árvores Binárias Edirlei Soares de Lima Árvores Uma estrutura de dados do tipo árvore permite que dados sejam organizados de maneira hierárquica.
Leia maisAlocação Dinâmica. Túlio Toffolo BCC202 Aula 02 Algoritmos e Estruturas de Dados I
Alocação Dinâmica Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 02 Algoritmos e Estruturas de Dados I Esquema de Memória baixa Código do Programa Variáveis Globais e Estáticas Memória
Leia maisÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior
ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior Árvore Binária de Busca (ABB) o valor associado à raiz é sempre maior que o valor associado a qualquer nó da sub-árvore à esquerda
Leia maisMétodos Computacionais. Listas Encadeadas
Métodos Computacionais Listas Encadeadas Vetores Declaração de vetor implica na especificação de seu tamanho Não se pode aumentar ou diminuir tamanho Outra alternativa no uso de vetores é alocar dinamicamente
Leia maisCES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra
CES-11 Algoritmos e Estruturas de Dados Carlos Alberto Alonso Sanches Juliana de Melo Bezerra CES-11 Revisão Tipos escalares primitivos Tipos constituídos de uma linguagem Ponteiros Alocação estática versus
Leia maisAnálise e Síntese de Algoritmos. Algoritmos em Grafos CLRS, Cap. 22
Análise e Síntese de Algoritmos Algoritmos em Grafos CLRS, Cap. 22 Mudança no Horário Aulas Teóricas de 4ª feira 10:30 12:00 Sala: FA1 12:00 13:30 Sala: FA1 Deixa de haver aula teórica às 9:00 por troca
Leia maisÁrvores Binárias de Busca
0. Um breve comentário sobre os algoritmos de busca em tabelas De uma maneira geral, realizam-se operações de busca, inserção e remoção de elementos numa tabela. A busca sequencial tradicional é O(N).
Leia maisCarlos Eduardo Batista. Centro de Informática - UFPB
Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Aritmética de ponteiros em C (continuação) O que acontece na memória? Ponteiro para ponteiro etc. Métodos de pesquisa
Leia maisCiclos hamiltonianos e o problema do caixeiro viajante
Ciclos hamiltonianos e o problema do caixeiro viajante Algoritmos em Grafos Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional.
Leia maisAlocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)
Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisUniversidade Federal do Ma Curso de Ciência da Computação
Universidade Federal do Ma Curso de Ciência da Computação Estrutura de Dados Prof. Anselmo C. de Paiva Depto de Informática Limitações dos vetores Vetores Simples, Rápidos Mas, é necessário especificar
Leia maisEstruturas de Dados Aula 10: Listas (parte 2) 19/04/2011
Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo
Leia mais