Exercícios sobre Listas, Árvores, Grafos e Recursão Generativa

Tamanho: px
Começar a partir da página:

Download "Exercícios sobre Listas, Árvores, Grafos e Recursão Generativa"

Transcrição

1 Exercícios sobre Listas, Árvores, Grafos e Recursão Generativa Fundamentos de Algoritmos INF05008 Esta listanão épara entrega,massimpara aferiropreparo individualdoalunopara a última prova; dúvidas poderão ser discutidas na aula do dia 7/12 ATENÇÃO: DEFINIÇÕES DE DADOS, CONTRATOS E EXEMPLOS FAZEM PARTE DAS SOLUÇÕES 1. Desenvolva um programa que ordena, em ordem crescente, lista de mensagens ( s) pela data (dia apenas) deste . Considere que: uma estrutura é definida da seguinte forma: (define-struct (remetente dia texto)) um é uma estrutura (make- remetente dia texto) onde remetente e textosão strings e dia é um número. Defina o(s) outro(s) tipo(s) de dado(s) antes de apresentar a função. 2. Seguindo o enunciado do exercício anterior, modifique o programa para que ordene os s pelo remetente. (Dica: use string<?). 3. Ainda considerando a questão de ordenação dos s, desenvolva uma função de alta ordem para ordenar s pela data que receba como argumento também a forma de ordenação (crescente ou decrescente, através de funções apropriadas). 4. Considereafunção searchquedeterminaseumnúmeroocorreounãoemumalistadenúmeros. Como pode ser observado, esta função tem que percorrer toda a lista para determinar isto. ;; search : number list-of-numbers -> boolean (define (search n alon) [(empty? alon) false] [else (or (= (first alon) n) (search n (rest alon)))])) Desenvolva uma função search-sorted que determina a mesma coisa, mas que se aproveita do fato de que alista está ordenada. 5. Simule manualmente as chamadas e confirme que (ancestral-olhos-azuis? empty) retorna false. Faça o mesmo para (ancestral-olhos-azuis? Gustav) (não é necessário realizar todas as chamadas; concentre-se nas principais). Obs.: para este e outros exemplos sobre árvores, consideraremos a árvore usada no exemplo visto em aula. 6. Desenvolva a função conta-pessoas que consome uma árvore cujos nodos são membros de uma família, e produz onúmero de pessas nafamília. 7. Desenvolva a função idade-média que consome uma árvore cujos nodos são membros de uma família, e produz a idade média das pessoas na família. 8. Desenvolva a função cores-dos-olhos que consome uma árvore cujos nodos são membros de uma família, e produz uma lista de todas as cores de olhos que ocorrem na família. Uma cor de olhos pode ocorrer mais de uma vez nalista. Dica: use a operação append que consome 2 listas e produz a concatenação delas. 9. Desenvolva a função contem-ab? que consome um número n e uma árvore binária cujos nodos são números. Se a árvore contiver o número em algum dos nodos, retornar true, senão false. 1

2 10. Desenvolva a função pesquisar-ab que consome um número e uma árvore binária cujos nodos contém estruturas que armazenam dados sobre um determinado contribuinte. As informações relevantes sobre contribuintes são: seu CPF e seu nome; além disto os nodos precisam apontar para os nodos anterior (esquerda) e posterior (direita). Esta função produz o nome do contribuinte caso o número exista na árvore e false em caso contrário. 11. Desenvolva a função na-ordem que consome uma árvore binária referente a contribuintes e produz uma lista de todos os CPF s destes contribuintes. Tal lista deve conter os números na ordem em que aparecem na árvore da esquerda para a direita. Dica: use a operação append que concatena 2 ou mais listas. 12. Desenvolva a função pesquisar-abp que consome um número n e uma ABP(árvore binária de pesquisa). SeaárvorecontiverumnodocujaestruturatemoCPFigualan,afunçãoretornaonomedocontribuinte. Caso contrario, produz false. Compare com o resultado produzido pela função pesquisar-ab (ver exercício nesta lista). 13. Desenvolvaafunção insere-nó. AfunçãorecebeumaABPB,umnúmeroneumsímbolos. Afunção cria uma nova ABP igual aanterior mas com aadição do nócom valores n e s. 14. Desenvolva a função constrói-abp a partir de uma lista-de-números. Use as listas exemplos apresentadas napágina 204 do livro. Uma lista-de-números é: empty (cons (list id nome) lnum) onde id é um número, nome é um símbolo, e lnum é uma lista de números 15. Uma página web é: (a) empty, ou (b) (cons s wp), onde s é um símbolo e wp é uma página web, ou (c) (cons ewp wp), onde ewp e wp são páginas web A partir dessa definição de dados, desenvolva a função troca. A função recebe dois símbolos, novo e velho, e uma página web wp. A função produz uma página com a mesma estrutura de wp, mas com todas as ocorrências de velho trocadas por novo. 16. Muitos usuários não gostam de navegar em páginas web que têm muitos sub-níveis até que se atinja a informação necessária. Por isso, um web designer quer medir qual a profundidade (número de níveis) de uma página. Se uma página contem apenas símbolos, então sua profundidade é zero. Uma página que remete a uma sub-página tem a profundidade desta mais um. Se uma página remete a diversas páginas, a profundidade dela é a máxima profundidade entre as páginas para as quais ela remete, mais um. Desenvolva a função profundidade que consome uma página web e calcula sua profundidade. 17. Simule manualmente (descendente-olhos-azuis? Eva), bem como (descendente-olhos-azuis? Bettina). 18. Desenvolva a função quão-longe que determina quão longe, na árvore, está um dado parent de um de seus descendentes de olhos azuis, caso haja algum. Se um dado parent tem olhos azuis, a distância é zero. Em caso contrário, se pelo menos um de seus filhos tem olhos azuis, a distância é um, e assim por diante. Se nenhum descendente tiver olhos azuis, então a função deve retornar false. 19. Desenvolver a função conta-descendentes que consome um nodo do tipo parent e conta o número de seus descendentes, incluindo a si mesmo. Modifique o exercício e crie a função conta-descendentes-exclusivo que realiza o mesmo porém exclui a si mesmo. 20. Desenvolver a função cor-dos-olhos que consome um parent e produz uma lista com todas as cores deolhosemsuaárvoregenealógica(seusdescendentes). Umacorpodeocorrermaisdeumaveznalista. 21. Desenvolver a função tamanho-página que consome uma página web (como definida) e produz o número de símbolos (palavras que ela contem). 2

3 22. Desenvolva a função ocorre-símbolo? que consome um símbolo e uma página web e determina se tal símbolo ocorre em algum lugar da página, incluindo suas sub-páginas. 23. Desenvolva a função encontra-símbolo. Ela produz false se um dado símbolo não ocorre em uma dada página ou em alguma de suas sub-páginas. Se o símbolo ocorre pelo menos uma vez, a função deve produzir uma lista dos cabeçalhos das páginas percorridas. Considere que uma estrutura webpage contem um cabeçalho (um símbolo) e um corpo (uma lista de símbolos). Dica: defina uma função auxiliar similar mas que produza apenas true quando uma web-page contem o símbolo desejado. 24. Explique porque cada uma das expressões abaixo é sintaticamente incorreta: 1. (local ((define x 10) (y (+ x x))) y) 2. (local ((define (f x) (+ (* x x) (* 3 x) 15)) (define x 100) (define f@100 (f x))) f@100 x) 3. (local ((define (f x) (+ (* x x) (* 3 x) 14)) (define x 100) (define f (f x))) f) 25. Determine quais das seguinte expressões são legais e quais não são, e explique porque. 1. (define A-CONSTANT (not (local ((define (odd an) [(= an 0) false] [else (even (- an 1))])) (define (even an) [(= an 0) true] [else (odd (- an 1))]))) (even a-nat-num)))) 2. (+ (local ((define (f x) (+ (* x x) (* 3 x) 15)) (define x 100) (define f@100 (f x))) f@100) 1000) 3. (local ((define CONST 100) (define f x (+ x CONST))) (define (g x y z) (f (+ x (* y z))))) 26. Avalie manualmente as seguintes expressões: 1. (local ((define (x y) (* 3 y))) (* (x 2) 5)) 2. (local ((define (f c) (+ (* 9/5 c) 32))) (- (f 0) (f 10))) 3

4 3. (local ((define (odd? n) [(zero? n) false] [else (even? (sub1 n))])) (define (even? n) [(zero? n) true] [else (odd? (sub1 n))]))) (even? 1)) 4. (+ (local ((define (f x) (g (+ x 1) 22)) (define (g x y) (+ x y))) (f 10)) 555) 5. (define (h n) [(= n 0) empty] [else (local ((define r (* n n))) (cons r (h (- n 1))))])) (h 2) 27. Use uma expressão local para organizar a função para encontrar descendentes de olhos azuis vista anteriormente. 28. Considere a seguinte definição de função: ;; maxi : non-empty-lon -> number ;; to determine the largest number on alon (define (maxi alon) [(empty? (rest alon)) (first alon)] [else [(> (first alon) (maxi (rest alon))) (first alon)] [else (maxi (rest alon))])])) Notar que ambas as cláusulas da expressão cond computam (maxi (rest an-inv)). Logo, esta é uma candidata natural a uma expressão local. Reformule a função dada usando a expressão local e teste ambas as versões com (list ). Qual o efeito? Explique. 29. Considere a seguinte definição de função e considere inventário conforme definido anteriormente neste curso: ;; extract1 : inventário -> inventário ;; cria um inventário a partir de an-inv para ;; todos os itens que custam menos de $1 (define (extract1 an-inv) [(empty? an-inv) empty] [else [(<= (ir-price (first an-inv)) 1.00) (cons (first an-inv) (extract1 (rest an-inv)))] [else (extract1 (rest an-inv))])])) Já que ambas as cláusulas da expressão cond extraem o primeiro ítem de um inventário, reformule o exemplo usando a expressão local. 30. Descreva as seguintes classes de funções: 4

5 1. (number -> boolean) 2. (boolean symbol -> boolean) 3. (number number number -> number) 4. (number -> (listof number)) 5. ((listof number) -> boolean) 31. Escreva o contrato da função filter1 conforme definida abaixo: (define (filter1 rel-op alon t) [(empty? alon) empty] [else [(rel-op (first alon) t) (cons (first alon) (filter1 rel-op (rest alon) t))] [else (filter1 rel-op (rest alon) t)])])) 32. Abstraia as 2 funções seguintes em uma única função chamada extremo: ;; mini : nelon -> number ;; to determine the smallest number ;; on alon (define (mini alon) [(empty? (rest alon)) (first alon)] [else [(< (first alon) (mini (rest alon))) (first alon)] [else (mini (rest alon))])])) ;; maxi : nelon -> number ;; to determine the largest number ;; on alon (define (maxi alon) [(empty? (rest alon)) (first alon)] [else [(> (first alon) (maxi (rest alon))) (first alon)] [else (maxi (rest alon))])])) Ambas consomem listas não vazias(nelon) e produzem um único número. A função da esquerda produz o menor número dalista, enquanto que adadireita produz omaior. Posteriormente, defina as funções mini1 e maxi1 em termos da função extremo. Teste cada uma das versões com as seguintes listas: (a) (list ) (b) (list ) (c) (list ) 33. Formule contratos para as seguintes funções: (a) sort: consomeumalistadenúmeroseumafunçãoqueconsome2números(dalistadada)eproduz um booleano; sort produz então uma lista de números (b) map que produz uma lista de números e consome uma função de número para número e uma lista de números (c) projectqueproduzumalistadesímboloseconsomeumalistadelistadesímboloseumafunção de lista de símbolos para símbolo 34. Use filter1 para desenvolver uma função que consome uma lista de símbolos e extrai todos os símbolos que não são iguais a car. Escreva ocontrato de filter Desenvolva a função mesmo-resultado?, a qual determina se duas funções (ambas consomem três números e produzem um número), produzem o mesmo resultado para 1.2, 3, Modifique as definições de ordena e insere para que elas passem a ser funções de alta ordem onde o critério de ordenação é definido como parâmetro. Denomine-as ordena-criterio e insere-criterio. 5

6 37. Simulte todos os passos até a solução usando a função quick-sort quando aplicada a (list ). 38. O que acontece se usarmos quick-sort com a lista (list ))? Modifique quick-sort para que nos devolva uma lista com omesmo tamanho da lista passada como argumento. 39. Desenvolva e teste as funções mdc-e e mdc-g com os números e Use (time (mdc-e...)) e (time (mdc-g...)) e compare os tempos de execução. Explique a razão da diferença. 40. A função quick-sort reduz o tamanho do problema em muitos casos, mas ela é muito lenta quando se trata de problemas pequenos. Desta forma, em geral se usa quick-sort para reduzir o tamanho do problema, aliada à função ordena (vista na aula sobre o cap. 12) para tratar os sub-problemas. Desenvolva uma versão da quick-sort que usa a função ordena se o tamanho da lista está abaixo de um limiar (dado como argumento). 41. Teste as funções quick-sort e ordena com o auxílio de (time (...)), para diversos tamanhos de listaseconstateque ordenaémaisrápidaparalistasdeatéumcertotamanho. Determinequetamanho é este. 42. Desenvolva a função concatena-strings, que recebe uma lista não-vazia do tipo lista-de-strings e retorna a concatenação de todas as strings da lista. Por exemplo: (concatena-strings (cons "Fundamentos de Algoritmos " (cons "é uma disciplina " (cons "muito legal!" empty)))) ===> "Fundamentos de Algoritmos é uma disciplina muito legal!" string string -> string para concatenar duas strings especí- Use a função string-append : ficas. 43. Um cozinheiro deve preparar uma receita. Antes de começar, ele precisa ter certeza de que possui todos os ingredientes necessários. Para ajudar esse cozinheiro, apresente a definição de dados do tipo lista-de-ingredientes e crie um programa que, a partir da lista de ingredientes em estoque e da lista de ingredientes da receita, retorne "OK" se todos os ingredientes estiverem disponíveis. Caso contrário, o programa deve informar quais ingredientes estão faltando. 44. Um ônibus percorre uma determinada linha, passando por diversas paradas. Apresente a definição de dados para lista-de-paradas e crie um programa que indique se é possível utilizar este ônibus para um deslocamento de uma parada inicial até uma parada final. Assuma que o percurso de volta é o inverso do percurso de ida. 45. Dadas três listas l1, l2 e l3 do tipo lista-de-números, definido abaixo, crie um programa que diga qual das três listas possui mais números dentro de um intervalo fechado entre dois números ini-int e fim-int. ;; Uma lista-de-números é ou ;; - empty, ou ;; - (cons n ldn), onde ;; n : number ;; ldn : lista-de-números 46. Desafio (exercício 12.4 do livro). Desenvolva a função permuta que, dada uma palavra (representada como uma lista de símbolos), retorna uma lista de todas as suas possíveis permutações. Por exemplo: 6

7 (permuta (list o l a)) ====> (list (list o l a) (list o a l) (list l o a) (list l a o) (list a a l) (list a l o) ) Dica 1. É necessário o uso de funções auxiliares. Dica 2. Para iniciar, pode-se usar a estratégia da função ordena: separar os itens da lista, passando-os para uma auxiliar. Dica 3. Cuidado com os tipos de retorno das funções: este exemplo ressalta a importância do contrato no desenvolvimento de funções complexas. 47. Considere a seguinte definição de dados: (define-struct nó (val esq dir)) Uma AB (árvore binária) é ou - false, ou - (make-nó val esq dir), onde val é número, esq e dir são AB Defina a função valores-ab que, dada uma árvore binária de entrada, retorna uma lista com os valores de todos osnós da árvore (emqualquer ordem). 48. Escreva uma função acha-maior-ab que encontre o maior valor armazenado em uma árvore binária. 49. Apresente um programa converte-árvores, o qual, dada uma AB, converte esta estrutura em uma ABP. 50. Além do insertion sort e do quick sort, vistos em aula, outro método de ordenação famoso é o merge sort. Neste método, a lista de números a serem ordenados é dividida em pares de números (listas de dois números consecutivos na lista original). Cada lista de pares é ordenada. Após isso, listas de pares ordenados consecutivos são ordenados, formando listas ordenadas de 4 números. Em seguida, as listas de 4números ordenados são usadas para formar listas com oitonúmeros, e assim por diante. Apresente um programa que implemente este método de ordenação. Assuma que o tamanho da lista de entrada é sempre uma potência de 2maior ou igual a Considere um conjunto de cidades de uma região. Cada cidade possui um conjunto de estradas que a ligam a outras cidades da mesma região, sendo que todas as estradas possuem mão dupla. Crie um programa que, dada uma lista de cidades e suas conexões, ache o menor caminho entre uma cidade de origem e uma cidade de destino. O comprimento do caminho a ser considerado é o número de estradas a serem percorridas entre cidades; i.e., o menor caminho possível entre duas cidades seria uma estrada que ligue as duas diretamente. No entanto, não deve ser assumido que sempre existe uma ligação direta entre todas as cidades. 52. Escreva a função move-bolas que, dada uma lista de bolas, move cada uma até que todas estejam fora do limite da mesa (uma única mesa) 7

Fundamentos de Algoritmos

Fundamentos de Algoritmos Fundamentos de Algoritmos CIC/UFRGS 2006/1 Mais em definições auto-referenciáveis: roteiro Estruturas em estruturas: exemplo das árvores de hereditariedade Árvores binárias de pesquisa Listas de listas

Leia mais

Fundamentos de Algoritmos

Fundamentos de Algoritmos Fundamentos de Algoritmos CIC/UFRGS 2006/1 Mais em definições auto-referenciáveis foi visto como definir árvores de ascendência, definindo dois campos do tipo nó que indicam os dois pais árvores de descendência

Leia mais

1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco.

1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco. Segunda lista de exercícios v100 Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz Bonetti SSC0300 Linguagem de Programação e Aplicações 1 Faça um programa que leia uma string

Leia mais

Funções Compostas. Fundamentos de Algoritmos. Projeto de programas complexos. Roteiro. Um programa é composto por definições de funções e variáveis

Funções Compostas. Fundamentos de Algoritmos. Projeto de programas complexos. Roteiro. Um programa é composto por definições de funções e variáveis Funções Compostas 1 Fundamentos de Algoritmos CIC/UFRGS 2006/1 Um programa é composto por definições de funções e variáveis Funções auxiliares são definidas para processar dependências Nesta seção funções

Leia mais

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio;

UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; UNIVERSIDADE DE SÃO PAULO ICMC SCC 202 Algoritmos e Estrutura de Dados I - 2º Semestre 2010 Profa. Sandra Maria Aluísio; e-mail: sandra@icmc.usp.br Lista de Exercícios Árvores, Árvores Binárias, Árvores

Leia mais

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C

Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.

Leia mais

INF111 Programação II Aulas 11, 12, 13 Ordenação

INF111 Programação II Aulas 11, 12, 13 Ordenação INF Programação II Aulas,, Ordenação Departamento de Informática UFV Ordenação A ordenação é o processo de organizar um conunto (vetor) de n obetos ou registros segundo uma determinada ordem crescente

Leia mais

Estruturas de Dados II

Estruturas de Dados II Estruturas de Dados II Rodrigo Porfírio da Silva Sacchi rodrigosacchi@ufgd.edu.br 3410-2086 Aula 2: Árvores http://www.do.ufgd.edu.br/rodrigosacchi Árvores Definição: Árvores Uma árvore T é um conjunto

Leia mais

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres

ESTRUTURA DE DADOS E ALGORITMOS. Árvores Binárias de Busca. Cristina Boeres ESTRUTURA DE DADOS E ALGORITMOS Árvores Binárias de Busca Cristina Boeres Árvore Binária de Busca 30! construída de tal forma que, para cada nó: nós com chaves menores estão na sub-árvore esquerda nós

Leia mais

Listas. CIC/UFRGS INF Fundamentos de Algoritmos 2006/1

Listas. CIC/UFRGS INF Fundamentos de Algoritmos 2006/1 Listas 1 Estruturas são apenas uma forma de representar informação composta. Elas são úteis quando sabemos exatamente como e por quantas partes um determinado dado é composto. Quando não sabemos ao certo

Leia mais

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas) Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01

Leia mais

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação

Árvores Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 Árvores Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 2 Árvore Binária de Busca Definição: uma árvore binária de busca (ABB) é uma árvore binária na qual

Leia mais

Universidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec

Universidade Federal do ABC Avaliação Disciplina Turma Professor Data Instruções para a prova (leia antes de começar): SelectionSort selectonsortrec Universidade Federal do ABC Avaliação: Prova 02 Disciplina: BC1424 - Algoritmos e Estruturas de Dados I Turma: Noturno Professor: Jesús P. Mena-Chalco Data: 03/05/2016 Nome completo: RA: Instruções para

Leia mais

2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.

2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados. Capítulo 5 Abstracção de dados 5. Exercícios de revisão. Diga o que é um tipo abstracto de informação.. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.

Leia mais

Limite assintótico para a ordenação, Ordenação em tempo linear

Limite assintótico para a ordenação, Ordenação em tempo linear Algoritmos e Estruturas de Dados I Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2017 1 Ordenação Ordenar corresponde ao processo

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias Árvores & Árvores Binárias Problema Implementações do TAD Lista Linear Lista encadeada eficiente para inserção e remoção dinâmica de elementos, mas ineficiente para busca Lista seqüencial (ordenada) Eficiente

Leia mais

Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.

Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. Lista 1 8 de abril de 2013 1 Exercícios Básicos 1.1 Na bibliografia Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. 1.2 Outros 1. Projete

Leia mais

ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

ÁRVORES E ÁRVORES BINÁRIAS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES E ÁRVORES BINÁRIAS Vanessa Braganholo Estruturas de Dados e Seus Algoritmos ÁRVORES Árvores Árvores Binárias INSTITUTO DE COMPUTAÇÃO - UFF 2 ÁRVORES Fonte de consulta: Szwarcfiter, J.; Markezon,

Leia mais

ALGORITMOS DE ORDENAÇÃO

ALGORITMOS DE ORDENAÇÃO ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,

Leia mais

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1

Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 Algoritmos e Estruturas de Dados Prof. Osório PIP/CA - Aula 05 Pag.: 1 - UNIVERSIDADE DO VALE DO RIO DOS SINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS (C6/6) PIP/CA - Programa Interdisciplinar de Pós-Graduação

Leia mais

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira Lista de exercícios sobre contagem de operações Prof. João B. Oliveira 1. metodo m ( Vetor V ) int i, res = 0; para i de 1 a V.size res = res + V[i]; return res; Soma de elementos de um vetor, O( ). 2.

Leia mais

INF 1620 P2-23/10/04 Questão 1 Nome:

INF 1620 P2-23/10/04 Questão 1 Nome: INF 1620 P2-23/10/04 Questão 1 Considere um tipo abstrato de dados para representar uma disciplina da PUC-Rio, com as seguintes informações: Nome da disciplina: com até 50 caracteres Código da disciplina:

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas

Leia mais

Árvores Binárias de Pesquisa (ABP) INF01203 Estruturas de Dados. Operações. Árvores Binárias de Pesquisa (ABP) Caminhamento Central à Esquerda

Árvores Binárias de Pesquisa (ABP) INF01203 Estruturas de Dados. Operações. Árvores Binárias de Pesquisa (ABP) Caminhamento Central à Esquerda Árvores Binárias de Pesquisa (ABP) INF03 Estruturas de Dados Árvores Binárias de Pesquisa apresentam uma relação de ordem entre os nodos ordem é definida por um campo denominado chave esq chave inf dir

Leia mais

Programação imperativa

Programação imperativa Capítulo 8 Programação imperativa 8.1 Exercícios de revisão 1. Distinga entre programação imperativa e programação funcional. 2. Explique a necessidade da introdução do operador de atribuição. 3. Diga

Leia mais

Algoritmia e Programação

Algoritmia e Programação Algoritmia e Programação Conteúdo Pesquisa em Vectores Apresentação e discussão de vários algoritmos de pesquisa. Pesquisa linear ou sequencial Pesquisa binária Ordenação de Vectores Exemplos de aplicação

Leia mais

Aula 19: Métodos eficientes de ordenação

Aula 19: Métodos eficientes de ordenação Algoritmos e Estruturas de Dados I Aula 19: Métodos eficientes de ordenação (Merge sort e Quick sort) Prof. Jesús P. Mena-Chalco jesus.mena@ufabc.edu.br 1Q-2019 1 Intercalando 2 vetores ordenados 2 Intercalando

Leia mais

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres

ESTRUTURA DE DADOS. Árvores, árvores binárias e percursos. Cristina Boeres ESTRUTURA DE DADOS Árvores, árvores binárias e percursos Cristina Boeres 2 Árvores! utilizada em muitas aplicações! modela uma hierarquia entre elementos árvore genealógica diagrama hierárquico de uma

Leia mais

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB

Estrutura de Dados. Carlos Eduardo Batista. Centro de Informática - UFPB Estrutura de Dados Carlos Eduardo Batista Centro de Informática - UFPB bidu@ci.ufpb.br Árvores (parte 2) Estruturas de Dados 2 Organização dos dados: Linear: Listas, pilhas, filas. Relação sequencial.

Leia mais

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome: INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica

Leia mais

Exercícios: Recursão

Exercícios: Recursão Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Recursão 1. Faça uma função recursiva que calcule e retorne o fatorial

Leia mais

INF 1010 Estruturas de Dados Avançadas. Árvores binárias

INF 1010 Estruturas de Dados Avançadas. Árvores binárias INF 1010 Estruturas de Dados Avançadas Árvores binárias 1 Árvore estrutura hierárquica: A B E F C D G A B C E F D G A B C D E F G (A (B (E, F)), C, (D (G))) 05/09/16 2 Árvore - definições árvore: nó raiz

Leia mais

INF 1620 P4 30/06/07 Questão 1 Nome:

INF 1620 P4 30/06/07 Questão 1 Nome: INF 1620 P4 30/06/07 Questão 1 O maior divisor comum (MDC) de dois números inteiros é o maior número inteiro que faz uma divisão exata (com resto zero) desses dois números. Por exemplo, o MDC de 32 e 40

Leia mais

Lista de Exercícios sobre Listas Implementadas por Encadeamento

Lista de Exercícios sobre Listas Implementadas por Encadeamento Lista de Exercícios sobre Listas Implementadas por Encadeamento 1) Se você tem de escolher entre uma representação por lista encadeada ou uma representação usando posições contíguas de memória para um

Leia mais

ALGORITMOS E ESTRUTURAS DE DADOS CES-11

ALGORITMOS E ESTRUTURAS DE DADOS CES-11 ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro pauloac@ita.br Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA CAP. 5. TÉCNICAS DE ORDENAÇÃO 5.1. Introdução 5.2. Métodos

Leia mais

Programação Funcional Aulas 5 & 6

Programação Funcional Aulas 5 & 6 Programação Funcional Aulas 5 & 6 Sandra Alves DCC/FCUP 2016/17 Definições usando outras funções Podemos definir funções usando outras previamente definidas (por exemplo: do prelúdio-padrão). Exemplo:

Leia mais

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler Aula 3 Listas Lineares Sequenciais Ordenadas prof Leticia Winkler 1 Listas Lineares Sequenciais Ordenadas Elementos da lista estão dispostos num vetor (contíguos na memória) e ordenado de acordo com alguma

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Algoritmos e Estruturas de Dados - Bioengenharia 2º Semestre Exame Época Normal Resolução 13/junho/2015 A. [3.5 val] Algoritmos de ordenação e de pesquisa Considere-se as

Leia mais

INF 1620 P4-06/12/02 Questão 1 Nome:

INF 1620 P4-06/12/02 Questão 1 Nome: INF 1620 P4-06/12/02 Questão 1 (a) Escreva uma função em C que receba como parâmetro um número inteiro não negativo e retorne, como resultado da função, o valor do seu fatorial. O cabeçalho desta função

Leia mais

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo

Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores

Leia mais

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina

Grafos: Busca. SCE-183 Algoritmos e Estruturas de Dados 2. Thiago A. S. Pardo Maria Cristina Grafos: Busca SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina Percorrendo um grafo Percorrendo um Grafo Percorrer um grafo é um problema fundamental Deve-se ter uma forma sistemática

Leia mais

Método de ordenação - objetivos:

Método de ordenação - objetivos: Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São

Leia mais

Ficheiros. Capítulo 8

Ficheiros. Capítulo 8 Capítulo 8 Ficheiros 1. (2) Escreva a função concatena que recebe uma lista de cadeias de caracteres, cada uma correspondendo ao nome de um ficheiro, e uma cadeia de caracteres, correspondendo ao nome

Leia mais

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013 Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void

Leia mais

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006) Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Lista 2 Completa 2006.1 (Gerada em 8 de maio de 2006) 1. Considerando a estrutura struct Ponto { int x; int y; para representar um ponto

Leia mais

Ordenação em tempo linear

Ordenação em tempo linear Ordenação em tempo linear CLRS cap 8 Algoritmos p. 1 Ordenação: limite inferior Problema: Rearranjar um vetor A[1..n] de modo que ele fique em ordem crescente. Existem algoritmos que consomem tempo O(n

Leia mais

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio Quick Sort (Ordenação Rápida) Algoritmo Quick Sort (recursivo) O algoritmo de Quick Sort foi desenvolvido por Sir Charles Hoare

Leia mais

INF 1620 P4-27/06/02 Questão 1 Nome:

INF 1620 P4-27/06/02 Questão 1 Nome: INF 1620 P4-27/06/02 Questão 1 Considere o tipo que representa uma grandeza vetorial (com três componentes) dado por: struct vetor { float x; float y; float z; }; typedef vetor Vetor; Pede-se: (a) Escreva

Leia mais

INF 1620 P4-09/07/03 Questão 1 Nome:

INF 1620 P4-09/07/03 Questão 1 Nome: INF 1620 P4-09/07/03 Questão 1 Um ponto geométrico no espaço 2D é representado pelas coordenadas reais x e y. Considere uma aplicação que precisa manipular pontos, através da implementação de duas funções.

Leia mais

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados

Leia mais

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38

8. Árvores. Fernando Silva. Estruturas de Dados DCC-FCUP. Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 8. Árvores Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 8. Árvores Estruturas de Dados 1 / 38 Árvores - estruturas não lineares (1) Uma lista é um exemplo de uma estrutura de dados

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação Primeiro Teste 16 de Abril de 2011 09:00 10:30 Nome: Número: Esta prova, individual e sem consulta, tem 7 páginas com 9 perguntas. A cotação de cada pergunta está assinalada

Leia mais

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich

Árvores Binárias. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich Árvores Binárias SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista. Figuras editadas por Isadora Maria Mendes http://www.icmc.usp.br/~paulovic

Leia mais

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:

Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros: Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas

Leia mais

Listas (Parte 1) Túlio Toffolo BCC202 Aula 09 Algoritmos e Estruturas de Dados I

Listas (Parte 1) Túlio Toffolo  BCC202 Aula 09 Algoritmos e Estruturas de Dados I Listas (Parte 1) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 09 Algoritmos e Estruturas de Dados I Ementa do Curso Tipos Abstratos de Dados / Alocação Dinâmica Análise de Algoritmos

Leia mais

Paradigmas de programação

Paradigmas de programação Paradigmas de programação 1 Paradigma? Um paradigma é algo que serve de exemplo ou modelo. Sinônimos: Padrão Prototipo 2 Paradigma de programação? É uma proposta tecnológica. Fornece uma visão do programador

Leia mais

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2

INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2 INTRODUÇÃO À COMPUTAÇÃO - RESUMO E EXERCÍCIOS* P2 *Exercícios de provas anteriores escolhidos para você estar preparado para qualquer questão na prova. Resoluções em simplificaaulas.com. Listas(= tipo

Leia mais

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição Recursividade Prof. Cesar Augusto Tacla Métodos iterativos Métodos iterativos utilizam estruturas de repetição For While Do while Normalmente, um método invoca outros métodos, não a si mesmo. 2 1 Recursividade

Leia mais

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Ordenação (sort) Bruno Feijó Dept. de Informática, PUC-Rio Bubble Sort Bubble Sort Ordem Crescente Apenas de interesse didático e de referência A idéia é ir comparando dois vizinhos e trocando

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó

Leia mais

Árvores & Árvores Binárias

Árvores & Árvores Binárias SCE 182 SCC122 Algoritmos Estruturas e Estruturas de Dados de Dados I Árvores & Árvores Binárias Prof. Material Original: Walter Aoiama Nagai; Maria das Graças Volpe Nunes; Definições Árvore T é um conjunto

Leia mais

INF 1620 P3-27/11/04 Questão 1 Nome:

INF 1620 P3-27/11/04 Questão 1 Nome: INF 1620 P3-27/11/04 Questão 1 Considere um arquivo texto com as notas dos alunos de uma disciplina. Os dados de cada aluno são armazenados em duas linhas do arquivo: uma com o seu nome (cadeia com até

Leia mais

INF1010 Lista de Exercícios 2

INF1010 Lista de Exercícios 2 INF00 Lista de Exercícios 2 Árvores. Construir algoritmo para dada uma árvore n-ária, transformá-la em uma árvore binária. 2. Qual a maior e menor quantidade de nós que podem existir em uma árvore binária

Leia mais

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2

Leia mais

(a) Indique, em português, o que realiza a seguinte função. [4 pontos]

(a) Indique, em português, o que realiza a seguinte função. [4 pontos] Universidade Federal do ABC Avaliação: Prova 02 Disciplina: MCTA028 - Programação Estruturada Turma: Noturno - A1 Professor: Jesús P. Mena-Chalco Data: 01/12/2016 Nome completo: RA: Instruções para a prova

Leia mais

Busca em Arranjos. Busca em arranjos. Busca em arranjos. Programação de Computadores. Busca em Arranjos

Busca em Arranjos. Busca em arranjos. Busca em arranjos. Programação de Computadores. Busca em Arranjos Busca em Arranjos Programação de Computadores Busca em Arranjos Como sabemos, arranjos são uma maneira de se armazenar muita informação em série Esta informação, em situações práticas, é usualmente dividida

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 22 Combinatorics Binomial coefficients Catalan numbers Inclusion-exclusion Burnside

Leia mais

Pedro Vasconcelos DCC/FCUP. Programação Funcional 5 a Aula Definições recursivas

Pedro Vasconcelos DCC/FCUP. Programação Funcional 5 a Aula Definições recursivas Programação Funcional 5 a Aula Definições recursivas Pedro Vasconcelos DCC/FCUP 2014 Definições usando outras funções Podemos definir funções usando outras previamente definidas (e.g. do prelúdio-padrão).

Leia mais

Processamento da Informação

Processamento da Informação Processamento da Informação Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Tipos Padrões 2. Variáveis Auxiliares 3. Condicionais 1 Tipos Padrões Tipos Padrões A linguagem Python fornece

Leia mais

Programação 2. Trabalho Prático P4A. Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em ambiente Linux.

Programação 2. Trabalho Prático P4A. Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em ambiente Linux. Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007 Programação 2 2º Semestre Trabalho Prático P4A Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em

Leia mais

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras

AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras AED2 - Aulas 06 e 07 Árvores AVL e rubro-negras Árvores AVL AVL vem dos nomes dos seus inventores: Adelson-Velsky and Landis. Definições: a altura de uma subárvore é o comprimento do caminho mais longo

Leia mais

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Estruturas de Dados Módulo 17 - Busca 2/6/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

Inteligência Artificial

Inteligência Artificial Instituto Politécnico de Setúbal Escola Superior de Tecnologia de Setúbal Departamento de Sistemas e Informática Guia de Exercícios Complementares de Lisp Inteligência Artificial Prof Joaquim Filipe Eng.

Leia mais

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Funções 1. Crie uma função que recebe como parâmetro um número inteiro

Leia mais

Árvore binária - definição

Árvore binária - definição Árvore binária - definição árvore binária: conjunto finito de nós Æ (árvore vazia) {raiz, sub-árvore esquerda, sub-árvore direita}, onde sae e sad são conjuntos disjuntos Æ ou raiz /* nó da árvore binária

Leia mais

Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP

Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Aula 15: Pesquisa em Memória Primária Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa Binária Árvores de

Leia mais

INF 1620 P3-06/12/03 Questão 1 Nome:

INF 1620 P3-06/12/03 Questão 1 Nome: INF 1620 P3-06/12/03 Questão 1 Considere um cadastro com as médias por disciplina dos alunos de uma universidade. Esse cadastro é originalmente armazenado em um arquivo texto que contém, para cada disciplina,

Leia mais

Programação II. Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio

Programação II. Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio Programação II Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio Busca em Vetor Problema: Entrada: vetor v com n elementos elemento d a procurar Saída m se o elemento procurado está em

Leia mais

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó.

1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó. 1. Proponha algoritmos para: a. Calcular a altura dos nós de uma árvore binária dada, armazenando o valor da altura no nó. b. Achar o maior elemento (campo numérico) de uma árvore binária dada. c. Trocar

Leia mais

Bubble Sort. Tempo total O(n 2 )

Bubble Sort. Tempo total O(n 2 ) Bubble Sort Considere uma seqüência de n elementos que se deseja ordenar. O método da bolha resolve esse problema através de várias passagens sobre a seqüência Não é um algoritmo eficiente, é estudado

Leia mais

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19

Arvores, Percursos não recursivos, Arvores heterogêneas. Aula 19 Arvores, Percursos não recursivos, Arvores heterogêneas Aula 19 Arvores binárias encadeadas Percorrer uma árvore é uma operação muito comum e seria útil encontrar um método mais eficiente para implementar

Leia mais

Tabelas de dispersão/hash

Tabelas de dispersão/hash Tabelas de dispersão/hash 1 Tabelas de dispersão/hash 1. Considere uma tabela de hash de tamanho m = 1000 e a função de hash h(k)= [m.(k.a % 1)], com A=( 5-1)/2. Calcule os valores de hash das chaves 61,

Leia mais

Fundamentos de Algoritmos - Aula 5

Fundamentos de Algoritmos - Aula 5 Fundamentos de Algoritmos - Aula 5 INF05008 2006/1 Expressões e Funções Condicionais Para diversos problemas, programa deve lidar com situações diferentes de formas diferentes jogo deve determinar de velocidade

Leia mais

Métodos de Busca Parte 1

Métodos de Busca Parte 1 Métodos de Busca Parte 1 Introdução à Ciência da Computação II Prof. Diego Raphael Amancio Baseado no material do Prof. Rudinei Goularte e do Prof. Thiago A. S. Pardo Introdução Importância em estudar

Leia mais

Lista Encadeada (Linked List)

Lista 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 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 Á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 mais

Ficha 1 Noções de sequência e decisão em algoritmia

Ficha 1 Noções de sequência e decisão em algoritmia Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução

Leia mais

Algoritmos e Estrutura de Dados

Algoritmos e Estrutura de Dados Algoritmos e Estrutura de Dados Fabrício Olivetti de França 02 de Fevereiro de 2019 Topics 1. Algoritmos de Ordenação Eficientes 1 Algoritmos de Ordenação Eficientes Heap Sort Na primeira aula de ordenação

Leia mais

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes Árvores Fabrício J. Barth BandTec - Faculdade de Tecnologia Bandeirantes Setembro de 2011 Tópicos Introdução Árvores binárias Implementação em Java Ordens de percurso em árvores binárias Altura de uma

Leia mais

Estruturas de Dados Algoritmos de Ordenação

Estruturas de Dados Algoritmos de Ordenação Estruturas de Dados Prof. Eduardo Alchieri (introdução) Considere uma sequência arbitrária S = {s1, s2, s3,...sn} composta por n 0 elementos retirados do conjunto universo U O objetivo da ordenação é arrumar

Leia mais

Exercícios TVC2 PARTE I:

Exercícios TVC2 PARTE I: Exercícios TVC2 Esta lista de exercícios foi elaborada como preparatório para a segunda avaliação que será realizada em breve, abordando repetições, vetores numéricos e strings. Algumas instruções: Desenvolva

Leia mais

INF 1620 P4-01/07/08 Questão 1 Nome:

INF 1620 P4-01/07/08 Questão 1 Nome: INF 1620 P4-01/07/08 Questão 1 Escreva uma função em C que receba duas strings, cujos caracteres estão ordenados em ordem crescente, e retorne uma nova string alocada dinamicamente, que contém todos os

Leia mais

Trabalho: Algoritmos de Busca e Ordenação. 1 Introdução. Prof. Bruno Emerson Gurgel Gomes IFRN - Câmpus Currais Novos. 31 de outubro de 2012

Trabalho: Algoritmos de Busca e Ordenação. 1 Introdução. Prof. Bruno Emerson Gurgel Gomes IFRN - Câmpus Currais Novos. 31 de outubro de 2012 Trabalho: Algoritmos de Busca e Ordenação Prof. Bruno Emerson Gurgel Gomes IFRN - Câmpus Currais Novos 31 de outubro de 2012 1 Introdução Os algoritmos de busca e de ordenação compreendem um conjunto de

Leia mais

Módulo 16 - Ordenação

Módulo 16 - Ordenação Estruturas de Dados Módulo 16 - Ordenação 15/05/2013 (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 mais

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35

Heaps. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Heaps Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Introdução Definição de Heap Heap Binária Implementação com vetor Fila de Prioridades

Leia mais

Árvores Binárias de Busca

Árvores Binárias de Busca Árvores AVL Árvores Binárias de Busca Altura de uma árvore binária (AB): igual à profundidade, ou nível máximo, de suas folhas A eficiência da busca em árvore depende do seu balanceamento Algoritmos de

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo

Leia mais