3. Lista Linear– Um Tipo Abstrato de Dados
3.1 TDA para uma lista linear não ordenada
Descreveremos um TDA para uma lista linear que suporta apenas números inteiros e as
as seguintes operações:
a.
b.
c.
d.
e.
Inicializar_Lista - colocar a lista na condição de lista vazia
Lista_É_Vazia - verifica se a lista está vazia
Lista_É_Cheia - verifica se a lista está cheia
Insere_Elem - insere elemento dado num dos extremos da lista
Remove_Elem - remove o elemento dado
TDA lista_não_ordenada é:
dados: números inteiros
operações:
Inicializar_Lista
entrada: o endereço da lista
pré-condição: nenhuma
processo: colocar a lista na condição de lista vazia
saída: nenhuma
pós-condição: uma lista vazia
Lista_É_Vazia
entrada: o endereço da lista
pré-condição: nenhuma
processo: verificar se a lista está na condição de vazia
saída: retorna True se lista vazia
retorna False se lista não está vazia
pós-condição: nenhuma
Lista_É_Cheia
entrada: o endereço da lista
pré-condição: nenhuma
processo: verificar se a lista está na condição de cheia
saída: retorna True se lista está cheia
retorna False se lista não está cheia
pós-condição: nenhuma
Insere_Elem
entrada: o endereço da lista e o elemento a ser inserido
pré-condição: a lista não estar cheia
processo: inserir o elemento dado num dos extremos da lista
saída: retorna 1 se a inserção ocorreu com sucesso
retorna -1 se a inserção ocorreu com fracasso
pós-condição: a lista de entrada com um elemento a mais
Remove_Elem
entrada: o endereço da lista e o elemento que se deseja remover
pré-condição: lista não ser vazia
processo: percorrer a lista a partir do seu inicio até encontrar o elemento
desejado ou chegar ao final da lista. Se encontrar o elemento
remova-o da lista,
garantindo que a lista mantenha sua ordem linear
saída: retorna 1 se a remoção ocorreu com sucesso
retorna -1 se a remoção ocorreu com fracasso
pós-condição: a lista de entrada com um elemento a menos
Fim TDA lista_não_ordenada
3.2 Descrição do TDA para uma Lista Linear Ordenada
Usaremos as mesmas funções descritas na subseção 3.1.1, com algumas modificações
apenas para as operações Insere_Elem e Remove_Elem.
a)
b)
c)
d)
e)
Inicializar_Lista - colocar a lista na condição de lista vazia
Lista_É_Vazia - verifica se a lista está vazia
Lista_É_Cheia - verifica se a lista está cheia
Insere_Elem - insere elemento dado na posição correta na lista
Remove_Elem - remove o elemento desejado. Neste caso a busca pelo elemento pode
ser otimizada.
TDA lista_ordenada é:
dados: números inteiros
operações:
Inicializar_Lista
entrada: o endereço da lista
pré-condição: nenhuma
processo: colocar a lista na condição de lista vazia
saída: nenhuma
pós-condição: uma lista vazia
Lista_É_Vazia
entrada: o endereço da lista
pré-condição: nenhuma
processo: verificar se a lista está na condição de vazia
saída: retorna True se lista vazia
retorna False se lista não está vazia
pós-condição: nenhuma
Lista_É_Cheia
entrada: o endereço da lista
pré-condição: nenhuma
processo: verificar se a lista está na condição de cheia
saída: retorna True se lista está cheia
retorna False se lista não está cheia
pós-condição: nenhuma
Insere_Elem
entrada: o endereço da lista e o elemento a ser inserido
pré-condição: a lista não estar cheia
processo: percorrer a lista a partir do seu inicio até encontrar o primeiro
elemento maior que o elemento a ser inserido e guardar esta
posição. Inserir o elemento na lista de tal forma que esta se
mantenha ordenada.
saída: retorna 1 se a inserção ocorreu com sucesso
retorna -1 se a inserção ocorreu com fracasso
pós-condição: a lista de entrada com um elemento a mais
Remove_Elem
entrada: o endereço da lista e o elemento que se deseja remover
pré-condição: lista não ser vazia
processo: percorrer a lista a partir do seu inicio até encontrar o elemento
desejado ou até encontrar um elemento maior que o valor do
elemento que se quer remover. Se encontrar o elemento removao da lista, garantindo que a lista se mantenha ordenada.
saída: retorna 1 se a remoção ocorreu com sucesso
retorna -1 se a remoção ocorreu com fracasso
pós-condição: a lista de entrada com um elemento a menos
Fim TDA lista_ordenada