ESTRUTURAS DE DADOS II MSC. DANIELE CARVALHO OLIVEIRA MESTRE EM CIÊNCIA DA COMPUTAÇÃO – UFU BACHAREL EM CIÊNCIA DA COMPUTAÇÃO - UFJF Estruturas de Dados II: Msc. Daniele C. Oliveira 2 INTRODUÇÃO Estruturas de Dados II: Msc. Daniele C. Oliveira 3 ALGORITMOS • Sequência de ações executáveis para a obtenção de uma solução para um determinado tipo de problema. Segundo Dijkstra, um algoritmo corresponde a uma descrição de um padrão de comportamento, expresso em termos de um conjunto finito de ações. Estruturas de Dados II: Msc. Daniele C. Oliveira 4 ESTRUTURAS DE DADOS • Estruturas de Dados e Algoritmos estão intimamente ligados: • Não se pode estudar estruturas de dados sem considerar os algoritmos associados a elas; • Assim como a escolha dos algoritmos em geral depende da representação e da estrutura dos dados • Para resolver um problema é necessário escolher uma abstração da realidade, em geral mediante a definição de um conjunto de dados que representa a situação real. Estruturas de Dados II: Msc. Daniele C. Oliveira 5 TIPOS DE DADOS • Tipos de Dados: Refere-se ao conjunto de valores que uma constante ou variável pode assumir. • Tipos Primitivos: números, valores lógicos, caracteres; comuns na maioria das linguagens: int, float, char, boolean • Tipos Abstratos de Dados: conjunto de valores e as operações que serão efetuadas sobre esses valores. • Modelo Matemático, acompanhado das operações definidas sobre ele. • A representação do modelo matemático por trás do TAD é realizada mediante uma estrutura de dados Estruturas de Dados II: Msc. Daniele C. Oliveira 6 POR QUE ESTUDAR ESTRUTURAS DE DADOS • Identificar e desenvolver modelos matemáticos, determinando classes de problemas que podem ser resolvidos com o uso delas. • Criar representações concretas de objetos e desenvolver rotinas capazes de atuar sobre estas representações, de acorde com o modelo considerado. Estruturas de Dados II: Msc. Daniele C. Oliveira 7 ESTRUTURAS DE DADOS HOMOGÊNEAS • Permite agrupar diversas informações dentro de uma mesma variável. Este agrupamento deverá obedecer sempre ao mesmo tipo de dado.: Ex: Matrizes e Vetores • Matrizes de uma Dimensão (Unidimensionais) ou Vetores - Os elementos de um vetor são acessados por meio de índices de valor inteiro • Pascal » o 1º Elemento corresponde ao índice 1 • Java, C » o 1º Elemento corresponde ao índice 0 • Não é possível operar diretamente sobre um vetor como um todo, mas apenas sobre seus componentes. • Tem grande aplicação na pesquisa e classificação de dados. Estruturas de Dados II: Msc. Daniele C. Oliveira 8 ESTRUTURAS DE DADOS HOMOGÊNEAS • Matrizes com mais de uma dimensão • Definida por uma única variável de dimensão de determinado tamanho > 1 • Do mesmo modo que em matrizes unidimensionais, não é possível operar sobre a matriz como um todo, apenas sobre seus componentes. Estruturas de Dados II: Msc. Daniele C. Oliveira 9 ESTRUTURAS DE DADOS HETEROGÊNEAS • É uma estrutura composta por um conjunto de variáveis de tipos diferentes, logicamente relacionados. O tipo mais comum é o registro. Estruturas de Dados II: Msc. Daniele C. Oliveira 10 TADS • Listas (Estáticas/Dinâmicas, Sequenciais/Dinâmicas) • Pilha - LIFO • Fila - FIFO • Fila Dupla Estruturas de Dados II: Msc. Daniele C. Oliveira 11 TADS • Operações Possíveis • Acessar qualquer elemento da lista • Remover um elemento de uma posição específica da lista • Combinar duas listas em uma • Dividir uma lista em duas • Obter cópias de uma lista • Determinar o total de elementos de uma lista • Ordenar os elementos de uma lista • Buscar elementos na lista... Estruturas de Dados II: Msc. Daniele C. Oliveira 12 ÁRVORES • Filas, Pilhas.. – Estruturas Lineares • Árvores – Estrutura não Linear • Árvores N-árias • Árvores Binárias • Árvores Binárias de Busca (ABB ou ABP) • Árvores B • Árvores AVL • Percurso em Árvores DESAFIO – CONSTRUA A ÁRVORE •PRÉ – ORDEM: •A B C F H D L M P N E G I •IN – ORDEM: •F C H B D L P M N A I G E ESTRUTURAS DE DADOS II: MSC. DANIELE C. OLIVEIRA 13 Estruturas de Dados II: Msc. Daniele C. Oliveira 14 Extra • URI • 1119; 1451; 1463; 1466; 1211; 1062; 1063; 1242; 1340; 1438; 1110; 1425; 1633; 1897; 1215; 1200; 1201; 1696; 1861 Estruturas de Dados II: Msc. Daniele C. Oliveira 15 FIM DA AULA 2 Próxima aula: Busca