Estruturas de Dados Apresentação

Documentos relacionados
Estruturas de Dados. / NT Editora. -- Brasília: p. : il. ; 21,0 X 29,7 cm.

Dados Gerais. Conteúdo. Tipos de Dados. Profa. Renata de Matos Galante

Motivação. Estrutura de Dados. Motivação. Motivação. Por que estudar os tipos de dados? Duas são as principais preocupações em um projeto de software

ANHANGUERA ESTRUTURA DE DADOS AULA 02 O QUE É ESTRUTURA DE DADOS? Prof. Thomás da Costa

Estruturas de Dados. Prof.: Carlos Alberto Página da Disciplina:

MC-102 Aula 01. Instituto de Computação Unicamp

Estruturas de Dados Estruturas de Dados Fundamentais

ALGORITMOS E ESTRUTURAS DE DADOS CES-11

Estrutura de Dados. Plano de Ensino. Vilson Heck Junior. Campus Lages. Instituto Federal de Santa Catarina

MÓDULO 3: Programação Estruturada

8. Árvores. Fernando Silva DCC-FCUP. Estruturas de Dados. 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

Disciplina de Algoritmos e Programação

Resolução Exe 2.12 Monolítico Recursivo

Linguagem de Programação I Prof. Tiago Eugenio de Melo.

Tipos Abstratos de Dados

ESTRUTURA DE DADOS DCC013

O que é um jogo digital?

Projeto e Análise de Algoritmos. Introdução. Prof. Ademir Constantino Universidade Estadual de Maringá Departamento de Informática

Algoritmos Lógica e Programação Prof. Me. Adelson Felipe Dias Nogueira

Algoritmos e Estrutura de Dados. Aula 01 Apresentação da Disciplina e Introdução aos Algoritmos Prof. Tiago A. E. Ferreira

Planificação Anual da disciplina de Programação e Sistemas de Informação 10º 1PI

Introdução a Algoritmos

Algoritmos, Estruturas de Dados e Tipos Abstratos de Dados (TADs)

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1

Algoritmos e Estruturas de Dados II IEC013. TAD, Pilhas e Filas. Prof. César Melo

Introdução a Programação

Linguagens de Programação

Algoritmos 2 - Introdução

Algoritmos Computacionais

AULA 11 PROJETO E ANÁLISE DE ALGORITMOS. Conceitos básicos e representação de grafos Karina Valdivia Delgado

Estruturas de Dados Encadeadas

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

Aula 07: Algoritmos de busca e Listas encadeadas

CES-11. Algoritmos e Estruturas de Dados. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

Lista de Exercícios 04

Algoritmos e Linguagem de Programação I

Algoritmos e Programação

Lógica de Programação, Algoritmos e Estruturas de Dados

AULA 00 Estrutura de Dados Professor Pedro Henrique Chagas Freitas

PPM CONTEÚDO. Lógica de programação Programação para manufatura Sistemas supervisorios PROGRAMAÇÃO PARA MANUFATURA 05/03/2009

Algoritmos e Técnicas. Lógica de Programação. É a técnica de encadear pensamento para atingir determinado objetivo.

Aula I Introdução à Lógica de Programação

LÓGICA DE PROGRAMAÇÃO. Algoritmos Computacionais. Sérgio Carlos Portari Júnior

Algoritmos e Estrutura de Dados I Conceitos de Algoritmos. Prof. Elyssandro Piffer

Introdução à Programação. Prof. Gustavo Callou

Introdução à Algoritmia

Classificação e Pesquisa

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Classificação Externa: Intercalação de Partições Classificadas

Introdução ao Python. Programa Computacional

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

SERVIÇO PÚBLICO FEDERAL MINISTÉRIO DA EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE MINAS GERAIS IFMG

Fundamentos de Programação

Aula 7 e 8 Filas e suas Aplicações. Prof. Leticia Winkler

CONCEITO DE ALGORITMO

Paradigmas de Linguagem de. Programação Profª. Roberta B Tôrres de programação referem-se a:

Classificação Externa: Intercalação de Partições Classificadas

Análise e Projeto de Algoritmos

TAD: Tipo Abstrato de Dados (parte 1)

AULA 00 Programação Estrutura de Dados e Algoritmos Professor Pedro Henrique Chagas Freitas

FICHA 8 PILHAS E FILAS

Estrutura de Dados e Arquivos Ementa Objetivo Geral Conteúdo Avaliação

Análise de Algoritmos Estrutura de Dados II

Capítulo 1 Conceitos Básicos

Introdução à Algoritmos. Professora: Fabíola Gonçalves.

Transcrição:

Estruturas de Dados Apresentação Prof. Eduardo Alchieri

Objetivos Apresentar técnicas fundamentais na análise e projeto de estruturas de dados em programas computacionais Vamos aprender: Quais são as principais estruturas de dados Como estas estruturas funcionam Como os algoritmos utilizados para acessar os dados armazenados nestas estrutuas funcionam Ao final do curso deveremos saber: Qual estrutura de dados é mais adequada para solucionar determinado problema e quais são as implicações de sua utilização (custos, etc...)

Plano de Ensino Discutir o plano de ensino Avaliação Duas provas Dois trabalhos Material: www.cic.unb.br/~alchieri

Ferramentas Linguagem de programação C Editor de texto

Introdução Programa de computador: Algoritmo + Dados Algoritmo Sequência finita de instruções para executar uma tarefa Bem definidas e não ambíguas Executáveis com uma quantidade de esforço finita Executáveis em um período de tempo finito Estrutura de dados Modo particular de armazenar/organizar dados e operações associadas As estruturas de dados são formas de distribuir e relacionar os dados disponíveis, de modo a tornar mais eficientes os algoritmos que manipulam estes dados

Exemplos Problema 1: Manipular um conjunto de fichas em um fichário Solução: Organizar as fichas em ordem alfabética Operações possíveis: Inserir ou retirar uma ficha, procurar uma ficha, procurar uma ficha em determinada posição, etc. Estrutura de dados correspondente: Lista ordenada (sequência de elementos dispostos em orderm)

Exemplos Problema 2: Organizar as pessoas que querem ser atendidas em um guichê Solução: Colocar as pessoas em fila Operações possíveis: sair da fila (ir para o atendimento), entrar no final da fila (não é permitido ''furar'' a fila) Estrutura de dados correspondente: FILA (sequência de elementos dispostos de maneira que o primeiro que chega é o primeiro que sai - FIFO)

Exemplos Problema 3: Visualizar o conjunto de pessoas que trabalham em uma empresa, considerando sua função. Solução: Construir o organograma da empresa Operações possíveis: inserir ou retirar certas funções, localizar uma pessoa, etc. Estrutura de dados correspondente: Árvore (estrutura de dados que caracteriza uma relação de hierarquia entre os elementos)

Introdução A eficiência de um algoritmo está intimamente relacionada com a estrutura de dados utilizada pelo programa Exemplo: Programa para a geração da folha de chamada das disciplinas Estrutura para representar os nomes dos alunos: Lista Por que uma lista? Porque existe a noção de sequência: sucessor e predecessor, primeiro e último Importante para as operações do programa; Ordenar, pesquisar, etc...

Introdução Lista é nossa estrutura lógica escolhida Como implementar esta estrutura lógica em uma estrutura física disponível em uma linguagem de programação Exemplo1: implementando lista usando um Array Exemplo 2: implementando a lista usando encadeamento

Introdução A escolha pela ''melhor'' alternativa de estrutura física depende de diversos fatores: número de dados é fixo ou variável, quantidade de dados, operações que serão realizadas sobre os dados, etc. Necessita-se pesquisar um número fixo de dados em uma lista: Array pode ser a melhor opção Necessita-se inserir frequêntemente novos dados na lista de forma ordenada: Encadeamento pode ser a melhor opção

Introdução A definição de um Tipo Abstrato de Dados (TAD) visa encapsular a forma de como uma estrutura de dados é implementada Um TAD é um modelo matemático de uma estrutura de dados que especifica: O tipo dos dados armazenados As operações definidas sobre esta estrutura de dados Os tipos de parâmetros das operações Um TAD define o que cada operação faz, mas não como o faz Em Java, um TAD pode ser expresso por uma interface e implementado por uma classe

Introdução Exemplos de estruturas de dados Listas Filas Pilhas Árvores Grafos...

Introdução Estruturas de dados são encontradas em praticamente todas as áreas da computação Banco de dados Resultados de consultas (lista de dados) Indexação de arquivos de dados (árvores de busca) Sistemas operacionais Controle de processos (filas de espera por recursos) Computação gráfica Manipulação de imagens (matrizes) Compiladores Validação de expressões (pilha)