ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1 - ppt carregar
PublicouDerek Carris Alterado mais de 7 anos atrás
Apresentação em tema: "ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1"— Transcrição da apresentação:
1 ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Período Letivo: 2013/2 Carga Horária: 80 horas Período da disciplina: 19/09 a 17/10/2013 Número de Avaliações: 3
"Possibilitar aos alunos a utilização otimizada das diversas estruturas de dados apresentadas, levando em consideração o problema a ser resolvido ou otimizado, e também o contexto no qual ocorre esse problema."
3 ABSTRAÇÃO DE DADOS Um processo é qualquer seqüência finita e ordenada de passos que visa promover transformações definidas sobre uma determinada matéria-prima. Se denominamos entrada a matéria-prima no seu estado inicial; e saída o que se obtém após as transformações realizadas pelo processo, temos o esquema geral a seguir: Matéria-prima abstrata: é processamento de dados. Abstrata: apresenta-se sob a forma de valores. Processamento realizado pelo computador: Entrada: dados colhidos do mundo real externo ao computador; Processo: série finita de operações que são realizadas a partir desses dados; Saída: transformação sofrida pelos dados através de um processo.
5 TIPOS DE DADOS (TDS) Embora os termos "tipos de dados", "estruturas de dados" e "tipos abstratos de dados" sejam parecidos, têm significados diferentes. Em linguagens de programação o tipo de dados de uma variável define o conjunto de valores que a variável pode assumir. Exemplo: BOOLEAN pode assumir valores TRUE ou FALSE. A declaração de uma variável em Pascal especifica duas coisas: Quantidade de bytes reservados para a variável (ex. 2bytes); Como o dado representado por esses bytes pode ser interpretado. (ex. 2 bytes = 16 bits = combinações. Um integer é interpretado de a sendo o ponto "zero" bem no meio desses dois bytes). Tipos de Dados: São métodos para interpretar o conteúdo da memória do computador. Exemplo de conjunto básico de tipos de dados primitivos (inteiro, real, caractere, lógico) oferecidos pelas linguagens de programação; e agrupamentos complexos de dados desses tipos primitivos (vetor, registro, ponteiro).
6 TIPOS ABSTRATOS DE DADOS (TADS)
TAD - formado por um conjunto de valores e uma série de funções que podem ser aplicadas sobre estes valores. Funções + valores (em conjunto) = modelo matemático empregado para "modelar" e solucionar problemas do mundo real: Especifica características relevantes dos objetos envolvidos no problema; Especifica forma com que eles se relacionam; e Especifica como podem ser manipulados.
7 TIPOS ABSTRATOS DE DADOS (TADS)
TAD não leva em consideração como os valores são representados na memória do computador e nem se preocupa com o "tempo" gasto para aplicar as funções sobre tais valores. Exemplos: Listas; Pilhas; Filas;
8 AS ESTRUTURAS DE DADOS (EDS)
É um método particular de implementar um TAD. A implementação de um TAD escolhe uma ED para representá-lo. Cada ED é constituída de tipos básicos (integer, char, real) ou dos tipos estruturas (array, record) de uma linguagem.
9 OBJETIVO DAS ESTRUTURAS DE DADOS:
Teórico: Identificar e desenvolver modelos matemáticos, determinando que classes de problemas podem ser resolvidos com o uso deles. Prático: Criar representações concretas dos objetos e desenvolver rotinas capazes de atuar sobre essas representações, de acordo com o modelo considerado.
10 LISTAS LINEARES É uma estrutura que armazena elementos de forma alinhada, ou seja, com elementos dispostos um após o outro, como em uma lista de nomes, peças, valores, pessoas, compras, etc.
11 FUNDAMENTOS Uma Lista Linear, é uma coleção L: [a1, a2, ..., an], n>=0, cuja propriedade estrutural baseia-se apenas na posição relativa dos elementos, que são dispostos linearmente. Se n=0, dizemos que a lista L é vazia; caso contrário, são válidas as seguintes propriedades: a1 é o primeiro elemento de L; an é o último elemento de L;
12 Característica fundamental de uma lista linear é o sentido de ordem unidimensional dos elementos que a compõem. Assim, não temos dúvida onde inicia ou termina a lista. Algumas operações com listas: acessar um elemento qualquer; inserir um elemento numa posição específica; remover um elemento de uma posição específica; combinar duas listas em uma única; particionar uma lista em duas; obter cópias de uma lista; determinar o total de elementos na lista; ordenar os elementos da lista; procurar um determinado elemento na lista; apagar uma lista; outras...
13 Uma lista com um array, pode ser implementada como uma seqüência de records com elementos disponíveis: de forma consecutiva - Lista Estática Seqüencial; de forma não consecutiva - Lista Estática Encadeada; Uma lista pode ser ordenada ou não. Pascal permite construir EDs avançadas - Lista Dinâmicas; mais versáteis, utilizando ponteiros e variáveis dinâmicas. Considerando apenas operações de acesso, inserção e remoção restritas aos extremos das listas, temos casos especiais: Pilha: inserção, remoção, acesso realizados em um único extremo. Lista LIFO. Fila: inserção num extremo e remoção, acesso no outro extremo. Lista FIFO.
14 ALOCAÇÃO DE MEMÓRIA Para implementar uma lista linear: como podemos armazenar os elementos da lista dentro do computador? Alocar área de memória é responsabilidade do programador e estará em uma das quatro categorias abaixo:
15 ALOCAÇÃO ESTÁTICA X ALOCAÇÃO DINÂMICA
Quantidade total de memória utilizada pelos dados é previamente conhecida e definida de modo imutável, no próprio código-fonte do programa. Durante o programa não varia a quantidade de memória. ALOCAÇÃO DINÂMICA: Programa cria novas variáveis enquanto executa, ou seja, áreas de memórias não declaradas no programa passam a existir durante a execução.