Baixe o app para aproveitar ainda mais
Prévia do material em texto
Apresentação da disciplina Prof. Sergio Cleger Tamayo. sergio.cleger@gmail.com ESTRUTURA DE DADOS Agenda Introdução Objetivo Ementa Metodologia EMENTA Explora o conhecimento de soluções clássicas de problemas por meio de abstração utilizando conjuntos de dados, operações e representações de listas, pilhas, filas e árvores, apoiados em métodos e técnicas, tendo como subsídio uma linguagem de programação. OBJETIVOS DE APRENDIZAGEM Avaliar e propor a melhor estrutura de dados e algoritmo para solucioná-lo; Estimar soluções em relação a tempo de desenvolvimento, complexidade computacional e espacial. Implementar as estruturas de dados pilha, fila, lista e árvore na resolução de problemas. Aplicar os conceitos de alocação estática e dinâmica de memória. Identificar a estrutura mais apropriada na resolução de um problema específico. Estabelecer as diferenças de aplicação das estruturas pilha, fila, lista e árvores. Abstrair estruturas de dados dinâmicas em uma memória computacional. Conceitos preliminares ESTRUTURA DE DADOS Objetivos de Aprendizagem Reconhecer as principais características de abstração; Interpretar problemas de abstração do mundo real; Utilizar de abstrações em problemas do mundo real; Estruturas de Dados Uma maneira de organização e armazenamento de dados, de modo que possam ser usados eficientemente nas diferentes tarefas, ◦ Inserção ◦ Busca ◦ Modificação ◦ Etc.... As estrutura de dados servem no estudo dos diversos mecanismos de organização de dados para atender aos diferentes requisitos de processamento. Desafios no estudo de estruturas de dados Necessidade de alocar ou manter os seus itens de forma independente de seus conteúdos. Necessidade de alocar ou manter os seus itens de forma associativas; levando em consideração a interpretação dos conteúdos. Necessidade de uma hierarquia. O que é abstração? Realidade O que você abstrai dessa realidade? Abstração: Operação mental que observa a realidade e captura apenas os aspectos relevantes para um contexto Passe alguns minutos olhando para a figura abaixo e diga o que você consegue abstrair dela Abstração Conseguiu ver uma jovem mulher de perfil? Ou uma senhora olhando para baixo? Abstração Perceba que a realidade é a mesma ◦ Isto é, uma figura em preto e branco Mas dependendo da observação da realidade você pode ter abstrações diferentes Por isso, a abstração depende mais do observador do que da realidade observada. Abstração Realidade O que você abstrai dessa realidade? Sistema de Locadora de Veículo Abstração + Programação A tarefa de programar sistemas computacionais envolve o exercício constante da abstração da realidade e sua codificação em uma linguagem de programação. Abstração + Programação (Codificação) Exercícios... Problemas com pessoas Problemas com números Tipos de Dados e Tipos Abstratos de Dados O tipo de dado de uma variável, constante ou função define o conjunto de valores que a variável, constante ou função podem assumir. Você como programador pode definir novos tipos de dados em termos de outros já definidos, p.ex., arrays, records... Tipos de Dados e Tipos Abstratos de Dados Tipos estruturados são estruturas de dados já pré- definidas na linguagem de programação. O programador pode definir outras estruturas de dados para armazenar as informações que são precisas. Vetores, registros, listas encadeadas, pilhas, filas, árvores, grafos, são exemplos de estruturas de dados típicas utilizadas para armazenar informação em memória principal. Tipos de Dados e Tipos Abstratos de Dados Os tipos e estruturas de dados existem para serem usados pelo programa para acessar informações neles armazenadas, por meio de operações apropriadas. Do ponto de vista do programador, muitas vezes é conveniente pensar nas estruturas de dados em termos das operações que elas suportam, e não da maneira como elas são implementadas. Uma estrutura de dados definida dessa forma é chamada de um Tipo Abstrato de Dados (TAD). Avaliação #include <stdio.h> #define MAX 10 int LeInteiro() { int num; printf(“Digite um numero: "); scanf("%d", &num); printf("\n"); return num; } int main() { int v[10], cont, aux, i, soma; double valor; cont = ___; aux = LeInteiro(); while(aux >= 0 ___ ___________) { v[cont] = aux; aux = LeInteiro(); cont++; } soma = 0; for(i=0;i<cont;i++) soma += v[i]; valor = soma / (_________) cont; printf("resultado: %lf\n", valor); } Tipos Abstratos de Dados (TADs) Agrupa a estrutura de dados juntamente com as operações que podem ser feitas sobre esses dados. O TAD encapsula a estrutura de dados. Os usuários do TAD só tem acesso a algumas operações disponibilizadas sobre esses dados. ● Usuário do TAD x Programador do TAD Tipos Abstratos de Dados (TADs) Dessa forma, o usuário pode abstrair da implementação específica. Qualquer modificação nessa implementação fica restrita ao TAD. A escolha de uma representação específica é fortemente influenciada pelas operações a serem executadas. Tipos Abstratos de Dados (TADs) Vantagens: ● Reuso: uma vez definido, implementado e testado, o TAD pode ser acessado por diferentes programas; ● Manutenção: mudanças na implementação do TAD não afetam o código fonte dos programas que o utilizam (decorrência do ocultamento de informação); ● Correção: TAD foi testado e funciona corretamente. Conceitos preliminares ESTRUTURA DE DADOS
Compartilhar