14
Estrutura de Dados Aula 02

Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Embed Size (px)

Citation preview

Page 1: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Estrutura de Dados

Aula 02

Page 2: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Estrutura de Dados Lista - Definição

Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma seqüência determinada.▫ Este conjunto de dados pode possuir uma ordem

intrínseca (Lista Ordenada) ou não.▫ Este conjunto de dados pode ocupar espaços de

memória fisicamente consecutivos, espelhando a sua ordem, ou não.

▫ Se os dados estiverem dispersos fisicamente, para que este conjunto seja uma lista, ele deve possuir operações e informações adicionais que permitam que seja tratado como tal (Lista Encadeada).

Page 3: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Listas

20554128924

• A Lista é uma estrutura de dados cujo funcionamento é inspirado no de uma lista “natural”

• Uma lista pode ser Ordenada ou não.• Quando for ordenada, pode o ser por alguma

característica intrínseca dos dados (ex: ordem alfabética).

• Pode também refletir a ordem cronológica (ordem de inserção) dos dados).89

552420124

Page 4: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

-1

Listas usando Vetores012345 • Vetores possuem um espaço

limitado para armazenamento de dados.

• Necessitamos definir um espaço grande o suficiente para a lista.

• Necessitamos de um indicador de qual elemento do vetor é o atual ultimo elemento da lista.

Listacheia

Listavazia

20554

128924

Page 5: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Modelagem da ListaAspecto Estrutural:

Necessitamos de um vetor para armazenar as informações.

Necessitamos de um indicador da posição atual do último elemento da lista.

Necessitamos de uma constante que nos diga quando a lista está cheia e duas outras para codificar erros.

Page 6: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Código para estrutura da listaconstantes Maxlista = 100;Inicio = 0

tipo Lista {inteiro dados[Maxlista];inteiro primeiro, ultimo;

};

Page 7: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Modelagem da Lista•Aspecto Funcional:

▫Colocar e retirar dados da lista.▫Testar se a lista está vazia ou cheia e outros

testes.▫Inicializa-la

Page 8: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Modelagem da Lista•Operações: Colocar e retirar dados da lista:

▫FLVazia(Lista) : Faz a lista ficar vazia▫Insere(x,Lista): Insere x após o último

elemento da lista▫Retira(p,Lista,x): Retorna o item x que está na

posição p retirando-o da lista e deslocando os itens a partir da posição p+1 para as posições anteriores

▫Vazia(): Testa se a lista está vazia▫Imprime(): Imprime os itens da lista na ordem

de ocorrência

Page 9: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Algoritmo FLVazia()FUNÇÃO FLVazia(Lista)início

Lista.primeiro <- Inicio;Lista.ultimo = Lista.primeiro

fim;

Page 10: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Algoritmo Vazia (Lista)inteiro FUNÇÃO Vazia(Vazia)início

SE (Lista.ultimo = Lista.primeiro) ENTÃORETORNE(Verdade)

SENÃORETORNE(Falso);

fim;

Page 11: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Algoritmo Insere•Procedimento:

▫Testamos se há espaço.▫Incrementamos o último.▫Adicionamos o novo dado.

•Parâmetros:▫O dado a ser inserido.▫Lista (global).

45

20554

128924

Page 12: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Algoritmo Insere(Item;Lista)Inteiro Insere(Item;Lista)

inícioSE (Lista.ultimo > MaxLista ) ENTÃO

IMPRIMA(“Lista Cheia”);SENÃO

Lista.ultimo <- Lista.ultimo + 1.Lista.dados[Lista.ultimo] <- dado;RETORNE(Lista.ultimo);

FIM SEfim;

Page 13: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Algoritmo Retira(pos;Lista;Item)•Procedimento:

▫Testamos se há elementos.▫Decrementamos o último.▫Devolvemos o último elemento.

•Parâmetros:▫Lista (global).

Page 14: Estrutura de Dados Aula 02. Estrutura de Dados Lista - Definição Uma Estrutura de Dados Lista é um conjunto de dados dispostos e/ou acessáveis em uma

Algoritmo Retira(pos;Lista;Item)Inteiro retira(pos;Lista;Item)inteiro auxinício

SE (Vazia(Lista) OU pos > Lista.ultimo) ENTÃO IMPRIMA(“A lista esta vazia!”)

SENÃOItem<- Lista.dado[pos];Lista.ultimo <- Lista.ultimo - 1.PARA aux<-pos ATE lista.ultimo-1 FACA

lista.dado[aux] = lista.dado[aux+1];FIM SE

FIM;