Вы находитесь на странице: 1из 16

ESTRUTURA DE DADOS FILAS - LISTAS

Virgnia M. Cardoso

Fila
estruturas lineares com disciplina de acesso inseres e retiradas so feitas segundo um critrio que impe uma ordem ao conjunto. FIFO (First In, First Out), o primeiro a ser retirado o primeiro que tenha sido inserido.

Exemplo: fila nica de um banco

Nas filas as retiradas so feitas no comeo e as inseres so feitas no trmino.

Exemplo:

Fila fila.incio

B Fila.fim

Exerccio : 1) Criao de uma fila de 10 posies de valores inteiros e inicializao da mesma.


Incio 0

1 Fim

2 -1

2) Insero
Incio 10 0 15 1 Fim 0 12 2 4

10, 15, 12, 20, 7


20 3 7 4 5 6 7 8 9

3) Retirada ( fazendo-se 3 retiradas)


Incio 3 20 0 1 Fim 2 4 3 7 4 5 6 7 8 9

Problema

com fila esttica

Se

quisermos inserir mais elementos na fila, ..... Soluo : Fila Circular

Fila Circular

Figura 1

FILA CIRCULAR

Tanto na operao de insero quanto na operao de retirada devemos pegar o resto da diviso de f->fim ou f->inicio pelo nmero mxima de elementos que podem ser inseridos na fila (tamanho da fila). Esta operao necessria para definirmos o novo f->inicio e o novo f-> fim.

Exemplo 1: Para a fila circular representada na figura 1 temos: f->fim = 9 tamanho mximo da fila = 10

Para sabermos a posio para insero de um novo elemento: (9+1) % 10 = 10 % 10 = 0 O novo elemento ser inserido na posio 0 da fila que certamente est vaga porque f->tamanho = 7.

Exemplo 2:

Para a fila circular abaixo, em qual posio ser inserido um novo elemento?

Figura 2

f->fim = 4 tamanho mximo da fila = 10

Para sabermos a posio para insero de um novo elemento: (4 + 1) % 10 = 5 % 10 = 5 O novo elemento ser inserido na posio 5.

LISTAS
estrutura que permite representar um conjunto de dados de forma a preservar a relao de ordem entre os mesmos. Uma lista linear composta por ns que podem conter dados primitivos ou compostos. Todos os ns contm o mesmo tipo de dados. Portanto, lembre-se: a relao entre os elementos de uma lista linear a relao de ordem.

Representaes Menor esforo computacional. 1) Contigidade (Lista esttica)

explora a seqencialidade da memria do computador. Os ns de uma lista so armazenados em endereos contguos ou igualmente espaados um do outro. Portanto, se o endereo do n xi conhecido, ento o endereo de xi+1 pode ser determinado.

2) Encadeamento (Lista dinmica)


forma que permite o crescimento dinmico de uma lista e permite diminuir o esforo computacional em operaes de insero e/ou remoo de ns. Os ns so ligados entre si de modo que seja preservada a relao de ordem entre os mesmos.

PROBLEMAS

Representao por contigidade : - esforo computacional nas operaes de insero e/ou remoo de ns ; - necessidade de se avaliar previamente o tamanho mximo que a lista pode assumir ; - superdimensionamento: desperdcio de memria.

ENCADEAMENTO (ALOCAO DINMICA)


Forma que permite o crescimento dinmico de uma lista e permite diminuir o esforo computacional em operaes de insero e/ou remoo de ns. Os ns so ligados entre si de modo que seja preservada a relao de ordem entre os mesmos. Cada n, alm do dado propriamente dito, deve conter a indicao do n seguinte, caso exista. Isto chamado de contigidade lgica.

...

EXERCCIOS
1.

Simule a operao de insero e remoo de itens em uma pilha, conforme apresentada a seguir (fundo) A C D E G T(topo). Incluindo X e removendo 3 itens desta pilha, apresente passo a passo como a pilha fica.
Faa o exerccio um, mas para uma fila.

2.

EXERCCIOS
1.

Em uma implementao de pilha por meio de vetores, os itens so armazenados em posies contiguas da memria. Supondo uma pilha com os itens conforme exemplo, indique a posio correta. Considere primeiro = X0 e topo = X4.
X0 X1 X2 X3 X4 X X X X

a) b)

Onde inserir um novo item? Em qual posio feita a remoo de um item?

2.

Como resolver o exerccio 1 se estivermos com uma fila?

Вам также может понравиться