Roteiro Dados Simples e Compostos Tipo Abstrato de Dados (TAD)
Ex: Ponto em R2
Ex: Números racionais Listas (Conceituação)
Listas Encadeadas O TAD de uma Lista Encadeada
Ex: Implementação na linguagem C
Dados Simples
Referência a um elemento, com domínio e conjunto de operações prédefinido
● Dados numéricos (e.g. inteiro, real)● Dados simbólicos (e.g. caracteres)
Dados Compostos
Referência a um conjunto de elementos com domínio e conjunto de operações a ser estabelecido
● Homogêneos (e.g. vetor, matriz, cadeia decaracteres (“string”))
● Não necessariamente homogêneo (e.g. Estrutura)● Conjuntos, formas de inclusão, acesso,
organização, algoritmos eficientes para uso emconjuntos e organizações diversas. (e.g.Sequências, prioridade, hierárquicos, fluxos)
Tipo Abstrato de Dados (TAD)● Modelo Matemático● Implementa em um conjunto de elementos:– Operações específicas– Semântica Especial– A implementação usa as estruturas básicas de uma
linguagem de programação formando uma nova estrutura
● Abstrai detalhes após implementação, ou seja, realiza um encapsulamento do modelo matemático
Exemplos de Modelos matemáticos que poderiam ser implementados como TADs
● ponto, segmento de reta, círculo, númerosracionais, números complexos
Ex: Construindo um TAD para ponto (Celes, W.; Cerqueira, R. & Rangel, J.L. Introdução a Estruturas de Dados, Campus, RJ, 2004.)
Listas● Uma lista é uma estrutura flexível que pode
aumentar ou diminuir seu tamanho sob demanda● Elementos podem ser acessados, inseridos,
apagados, em qualquer posição da lista● Listas podem ser concatenadas ou repartidas em
sublistas
Listas● Matematicamente uma lista é uma sequência de
0 ou mais elementos de um tipo específico
● O número n de elementos da lista é o seu tamanho
● n sendo igual a 0 (zero) temos uma lista vazia
● Uma posição após o último elemento da lista é referido como o fim da lista
Como formar um TAD de Listas?● Definições de uma lista?● Qual o conjunto básico de operações de uma lista?– Inserir (x, p, L): inserir x na posição p da lista L – Deletar (p, L): deletar o elemento na posição p da lista L– ListaVazia(L): criar lista vazia
● outras operações?– Localizar (x, L)– Posterior (p, L), Anterior(p, L)– Primeiro (L)– ImprimirLista (L)
Listas com Cabeça, e sem Cabeça● Com Cabeça: o conteúdo da primeira célula é
irrelevante, serve apenas para marcar o início da lista. A primeira célula é a cabeça da lista.
● Sem Cabeça: o conteúdo da primeira célula é tão relevante quanto das demais (* Usada aqui)
Exercícios● Escreva uma função que receba uma lista
encadeada e devolva o endereço de um nó que esteja o mais próximo possível do meio da lista. Faça isso sem contar explicitamente o número de nós da lista.
● Escreva uma função que encontre uma célula de conteúdo mínimo. Faça duas versões: uma iterativa e uma recursiva.
● Escreva uma função que copie um vetor para uma lista encadeada. Faça duas versões: uma iterativa e uma recursiva.
Top Related