Objetivos Ao concluir esta Disciplina espera-se que os alunos sejam capazes de: Distinguir os conceitos de Estrutura e Dados; Compreender o que são, como funcionam e onde são utilizados os Arrays, Filas, Listas, Pilhas e Árvores. Definição de Estrutura de Dados Uma Estrutura de Dados pode ser definida como uma forma particular pela qual os computadores realizam a organização e manipulação dos dados de forma eficiente. Definição de Estrutura de Dados Dado Ativo a ser manipulado Estrutura Elemento estrutural que irá armazenar as informações Definição de Estrutura de Dados Dado Estrutura Inteiros(Int) Array Textos(String) Fila Caracter(char) Pilha Ponto flutuante(Double) Árvovre Quem é a estrutura e quem são os Dados? A B C D F G H I L M N O E J p Arrays(Vetores) “Um array é uma porção de memória fixa e sequencial dividida em pedaços idênticos indexados a partir do 0(zero). Em cada posição do array, podemos guardar um aluno.” Arrays Listas Encadeadas As listas ligadas ou encadeadas são conjuntos de elementos encadeados, onde cada elemento contém uma ligação com um ou mais elementos da lista. Listas Lineares Sequência de itens x1,x2,...,xn xi é de um determinado tipo n é o número de elementos da lista posição relativa dos itens: xi precede xi+1. Listas Lineares As listas ligadas ou encadeadas são conjuntos de elementos encadeados, onde cada elemento contém uma ligação com um ou mais elementos da lista. Cada elemento da lista ligada será composto por 2 partes principais: uma parte conterá as informações e a outra as conexões com outros elementos. Conteúdo Próx Cada elemento é formado por um bloco de dados e um ponteiro para o próximo elemento. Listas Lineares Listas Lineares – adicionando célula Listas Lineares – Removendo célula Listas Lineares – Exercícios Descreva como seria o processo para a realização de cada uma das operações. conjunto de operações sobre os objetos do tipo Lista: – Criar lista vazia – Inserir elemento (no fim) – Inserir elemento (numa posição específica) – Remover elemento (de uma posição específica) – Consultar o i-ésimo elemento – Pesquisar a ocorrência de um item – Imprimir todos os elementos da lista Filas São listas lineares que adotam a política FIFO (First In First Out – o primeiro que entra é o primeiro que sai) para a manipulação de elementos. As inserções são feitas no final da fila. As remoções são feitas no início da fila. A consulta na fila é feita desenfileirando elemento a elemento até encontrar o elemento desejado ou chegarao final da fila. Filas “Fila é uma estrutura de dados baseada no princípio FIFO (first in, first out), na qual os dados que foram inseridos primeiros na fila serão os primeiros a serem removidos.” Os primeiros serão os primeiros! Filas - Aplicações Alocação de recursos para impressão de documentos em uma impressora (spooler de impressão). Atendimento de processos requisitados ao um sistema operacional. Ordenação do encaminhamento dos pacotes em um roteador. Buffer para gravação de dados em mídia. Filas - Aplicações Filas – Operações Básicas Criação Inserção de um elemento Remoção de um elemento Verificar se a lista está vazia Liberar a lista Implementação de Fila com Vetor Devemos fixar o número máximo de elementos (N). O vetor é estático e a fila “se movimenta”, permitindo a manipulação dos dados nos dois extremos Usamos um mecanismo circular (fila circular) para aproveitar o máximo do vetor. Filas com listas encadeadas Filas - Exercícios Explique o procedimento para as seguintes atividades abaixo: Cria Fila Vazia; Testa se a fila está vazia; Testa se a fila está cheia; (quando usar vetores) Enfileira; Desenfileira. Explique como essas operações seriam realizadas com o uso de vetores. Pilhas É uma das estruturas de dados mais simples A idéia fundamental da pilha é que todo o acesso a seus elementos é feito através do seu topo. Assim, quando um elemento novo é introduzido na pilha, passa a ser o elemento do topo, e o único elemento que pode ser removido da pilha é o do topo. Pilhas “Pilha é uma estrutura de dados baseada no princípio LIFO (last in, first out), na qual os dados que foram inseridos primeiros na pilha serão os últimos a serem removidos.” Os últimos serão os primeiros! Pilhas – Operações básicas Existem duas operações básicas que devem ser implementadas numa pilha: operação para empilhar (push) um novo elemento, inserindo-o no topo operação para desempilhar (pop) elemento, removendo-o do topo. um Operações Push e Pop A B C Pilhas - Exercícios Descreva como seriam realizadas as operações abaixo: Criar uma estrutura de pilha; Inserir um elemento no topo (push); Remover o elemento do topo (pop); Verificar se a pilha está vazia; Liberar a estrutura de pilha; Explique como seria implementada uma pilha utilizando um vetor. Referências http://www.caelum.com.br/apostila-java-estrutura- dados