Lista Estática C++
Dilvan Moreira, parcialmente baseado em material do prof. Ricardo Campello
Lista Linear
Estrutura de representação de informação em que os elementos são mantidos de forma linear, ou seja, dispostos um após o outro
Ex.
listas de nomes, de valores, de pessoas, etc.
Pode ser ordenada ou não
Estruturação de informação em listas ocorre em vários domínios
P.
ex. lista telefônica
Lista Linear
Operação Básica em Listas:
Busca
por
um elemento através de uma “chave”
Ex. busca na lista telefônica: dado um nome, buscamos o telefone Inserção e Remoção de elementos:
Implementação
manipulação
depende da organização da lista
distinta de listas ordenadas e não ordenadas
TAD para Lista
Inicializar lista (p. ex. vazia):
void
Inserir elemento:
void
Definir(Lista *L);
Inserir(tipo_elem e, Lista *L);
Localizar a posição (na lista) de um elemento dado:
int
Localizar(tipo_elem e, Lista
*L);
retorna a posição do elemento na lista retorna um valor inválido caso ele não esteja na lista
TAD para Lista
Acessar elemento em posição dada:
tipo_elem Buscar(intp, Lista *L); retorna o elemento da lista na posição fornecida sem alterá-la
se posição não existir, retorna um valor inválido
Eliminar elemento na posição dada:
int Remover(intp, Lista *L);
Retorna 1 (true) se bem sucedida
Retorna 0 (false) se posição dada é inválida
Obter número de elementos na lista:
int Tamanho(Lista *L);
TAD para Lista
Apagar a lista:
void
Apagar(Lista *L);
Destruir a lista:
void
Destruir(Lista *L);
lista
não é mais acessível (só para implementações dinâmicas)
Obter posição seguinte à do último elemento:
int
Fim(Lista *L);
Verificar se lista está vazia, verificar se está cheia...
...
EDs Estáticas para Listas
Realizações Estáticas (vetores):
Seqüencial: