Prof. Marco Antonio M. Carvalho

Documentos relacionados
Prof. Marco Antonio M. Carvalho

CIC 110 Análise e Projeto de Algoritmos I

Prof. Marco Antonio M. Carvalho

Prof. Marco Antonio M. Carvalho

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Prof. Marco Antonio M. Carvalho

Prof. Marco Antonio M. Carvalho

Filas de prioridade. Algoritmos e Estruturas de Dados AED 2005/2006 AEDA 2009/2010

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

PCC104 - Projeto e Análise de Algoritmos

Aula 10 Comandos de Repetição

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Árvores Binárias de Busca (ABB) 18/11

Templates. Programação de Computadores Estruturas de Dados. Alan de Freitas. Considere o código abaixo que encontra o maior elementos entre 3 ints

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Aula 2 Listas Lineares Sequenciais. prof Leticia Winkler

Árvore B. Uma Árvore B de ordem m éumaárvore,talque: Cada nó contém no máximo m

Prof. Marco Antonio M. Carvalho

Aula 14: Funções Passagem de Parâmetros por Referência

Ordenação. Prof. Túlio A. M. Toffolo Prof. Marco Antonio M. Carvalho BCC402 Aula 04 Algoritmos e Programação Avançada

ANHANGUERA ESTRUTURA DE DADOS AULA 06 LISTAS CIRCULARES E DUPLAMENTE ENCADEADAS. Prof. Thomás da Costa

Fundamentos de Programação

Árvores binárias de busca

DAINF - Departamento de Informática

Algoritmos e Estruturas de Dados 2006/2007

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

PCS3111. Laboratório de Programação Orientada a Objetos para Engenharia Elétrica. Aula 11: Exercício Integrador (parte 2)

Árvores binárias de busca

Bit (Binary Digit) é a menor unidade de armazenamento de informação dentro do computador; Byte é a união de 8 bits capaz de representar 256

GGI026 - Árvore rubro-negra - Remoção

Laboratório de programação II

ÁRVORES ABB (ÁRVORES BINÁRIAS DE BUSCAS) Sérgio Carlos Portari Júnior

ESTRUTURA COM DECISÃO COMPOSTA

ESTRUTURAS DE DADOS E ALGORITMOS II ANTONIO RAMOS DE CARVALHO JÚNIOR PILHAS

Carlos Eduardo Batista. Centro de Informática - UFPB

Árvores binárias de busca

Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.

Estrutura de Dados: Aula 3 - Linguagem C

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof Márcio Bueno. / Material da Prof a Ana Eliza

Árvores binárias de busca

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA

Árvores Binárias de Busca (ABB) 18/11

Árvores de pesquisa. Árvores de pesquisa equilibradas

Biblioteca STL aplicada à Maratona de

Listas Estáticas. Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista

Árvores Equilibradas. Sumário

Árvores binárias de pesquisa

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

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

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

Aula 08. Estruturas de dados Árvore e Grafo

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

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

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

Instituto Federal de Educação, Ciência e Tecnologia do RN Câmpus Currais Novos. LINGUAGEM C++ VARIÁVEIS COMPOSTAS Arrays Aula I

Programação II. Árvores Binárias (Binary Trees) Bruno Feijó Dept. de Informática, PUC-Rio

CCO 016 Fundamentos de Programação

Puca Huachi Vaz Penna

Ordenação: Heapsort. Algoritmos e Estruturas de Dados II

Algoritmos e Estruturas de Dados 2005/2006. Algoritmo: conjunto claramente especificado de instruções a seguir para resolver um problema

Árvores Binárias de Busca

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

Algoritmos e Estrutura de Dados II. Árvore AVL. Prof a Karina Oliveira. Fonte: Prof a Ana Eliza

Universidade Federal de Mato Grosso Estrutura de Dados II

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

LÓGICA DE PROGRAMAÇÃO ESTRUTURAS DE DECISÃO PARA ENGENHARIA. Prof. Dr. Daniel Caetano

Árvores Binárias de Busca

Árvores de Pesquisa (Parte II)

Algoritmos e Estruturas de Dados 2005/2006

Algoritmos de Busca em Vetores

Ordenação: HeapSort. Prof. Túlio Toffolo BCC202 Aula 17 Algoritmos e Estruturas de Dados I

INF 1010 Estruturas de Dados Avançadas

Prof. Marco Antonio M. Carvalho

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2

Programação científica C++

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins

Aula 10 Alocação Dinâmica de Memória Listas Encadeadas. prof Leticia Winkler

ESTRUTURA DE DADOS DCC013. Árvore Binária de Busca

Listas Lineares. continuando...

Árvores AVL e Árvores B. Jeane Melo

INTRODUÇÃO ÀS ESTRUTURAS DE DADOS. Prof. Dr. Daniel Caetano

Puca Huachi Vaz Penna / José Américo T. Messias

Introdução a Programação. Ponteiros e Passagem de Argumentos por Referência

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

AED2 - Aula 04 Vetores ordenados e árvores de busca

Aula 10: Manipulação do fluxo de laços

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA DE CIÊNCIAS E TECNOLOGIA. ECT1203 Linguagem de Programação Turma Prof.

Listas de Prioridade. Fonte de consulta: Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC.

Algoritmos e Estrutura de Dados II. Árvore. Prof a Karina Oliveira.

Árvore Binária de Busca. Prof. César Melo

Edital de Seleção 024/2017 PROPESP/UFAM. Prova de Conhecimento. Caderno de Questões

Estruturas de Dados II

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

Fundamentos de Programação

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA ESTRUTURA COM DECISÃO MÚLTIPLA. Prof. Dr. Daniel Caetano

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

Aula 05: Condicionais (Parte 2)

UNIVERSIDADE DA BEIRA INTERIOR

Transcrição:

Prof. Marco Antonio M. Carvalho

Lembretes Lista de discussão Endereço: programaacao@googlegroups.com Solicitem acesso: http://groups.google.com/group/programaacao Página com material dos treinamentos http://www.decom.ufop.br/marco/extensao/obi/ Repositório online de problemas das edições passadas da OBI http://br.spoj.com/problems/obi/sort=-7 Moodle http://programaacao.net.br/login/index.php 2

Avisos Enviar o id do URI Online Judge; Aceitar o convite do grupo criado. 3

Na aula de hoje Árvores Binárias de Busca set multiset Problemas Selecionados Um Problema de Lógica 4

Árvores Binárias de Busca 5

Árvore de Busca Binária Como o próprio nome diz, uma árvore binária de busca é uma estrutura de dados do tipo árvore Armazena os dados de forma hierárquica; Nós são todos os elementos guardados na árvore; Raiz é o nó do topo da árvore; Filhos são os nós que vem depois dos outros nós; Pais são os nós que vem antes dos outros nós; Folhas são os nós que não têm filhos; são os últimos nós da árvore. 6

Árvore de Busca Binária Tamanho: 9; Raiz: vértice 8; Folhas: vértices 1, 4, 7 e 13 7

Árvore de Busca Binária Características: A subárvore esquerda de um nó X possui apenas valores menores do que X; A subárvore direita de um nó X possui apenas valores maiores do que X; Toda subárvore também deve ser uma árvore binária de busca; Não há valores duplicados. 8

Árvore de Busca Binária Operação Média Pior Caso Memória O(n) O(n) Busca O(log n) O(n) Inserção O(log n) O(n) Remoção O(log n) O(n) 9

Árvore de Busca Binária - Remoção de um nó folha 10

Árvore de Busca Binária - Remoção de um nó com um filho 11

Árvore de Busca Binária- Remoção de um nó com dois filhos 12

Árvore de Busca Binária Operações em uma árvore binária requerem comparações entre nós Essas comparações são feitas com chamadas a um comparador, que é uma subrotina que calcula a ordem linear em dois valores quaisquer; Esse comparador pode ser explícita ou implicitamente definido, dependendo da linguagem em que a árvore binária de busca está implementada. 13

set 14

set Conjuntos são estruturas de dados associativas que armazenam elementos sem repetição, seguindo uma ordenação específica; Em um conjunto, o valor do elemento também é sua própria identificação Por isto deve ser único. Uma vez armazenado, um elemento não pode ter seu valor alterado Porém, o elemento pode ser removido e inserido com outro valor. 15

set Internamente, os elementos estão sempre ordenados de acordo com o comparador fornecido; Os conjuntos da STL são implementados como árvores binárias de busca ou árvores vermelho-e-preto Vantagem da busca binária; Elementos sempre ordenados. Conjuntos não possuem acesso direto aos elementos. 16

set #include <iostream> #include <set> using namespace std; int main () { set<int> first; //conjunto vazio de inteiros //insere o elemento first.insert(10); first.insert(20); first.insert(40); 17

set //remove o elemento usando o valor first.erase(40); //localiza o elemento set<int>::iterator it = first.find(20); if(it == first.end()) cout<<"não encontrou"; else //remove o elemento usando um iterador first.erase(it); 18

set //imprime todos os elementos for (it=first.begin(); it!=first.end(); it++) cout << " " << *it; cout << endl; //esvazia o conjunto first.clear() return 0; } 19

multiset 20

multiset Um multiconjunto possui todas as características de um conjunto Porém, permite elementos repetidos. 21

multiset #include <iostream> #include <set> using namespace std; int main () { multiset<int> first; // multiset de inteiros vazio //insere no conjunto first.insert(15); 22

multiset //conta quantos elementos 15 existem no conjunto cout<<first.count(15)<<endl; //encontra a ocorrência do valor 15 multiset<int>::iterator result = first.find(15); //retorna um iterador para o final se não achar if(result == first.end()) cout<<"não encontrou"; return 0; } 23

Problemas Selecionados 24

Problemas Selecionados Andy s First Dictionary http://www.urionlinejudge.com.br/judge/en/problems/view/1215 25

Um Problema de Lógica 26

Um Problema de Lógica Se um tijolo pesa 1kg + meio tijolo, quanto pesa um tijolo e meio? 27

Desafio 28

Desafio Descobrir qual função da STL ajuda a resolver o seguinte problema http://www.urionlinejudge.com.br/judge/en/problems/view/1259 Pesquise no cpluplus.com 29

Perguntas? 30