SlideShare ist ein Scribd-Unternehmen logo
1 von 12
Downloaden Sie, um offline zu lesen
FilasEncadeadas
Estruturas de Dados I
Universidade Luterana do Brasil
Prof Fabiana Lorenzi
Filas
● FIFO - First in first out
● O primeiro a entrar é o primeiro a sair
● Dentre os elementos que ainda permanecem no conjunto, o
primeiro elemento a ser retirado é o primeiro que foi
inserido
● Toda fila deve ter uma começo e um final (usar variáveis
para indicar cada um deles)
2
Exemplosdefilas
fila de impressão
fila de banco
3
Operaçõespossíveisemumafila
O acesso a uma fila é realizado somente de 2 formas:
Enfileirar
(inserir um novo elemento no final da fila).
Desenfileirar
(remover o elemento do início da fila).
4
Filasencadeadas
Registro tfila
inteiro dado
registro tfila *próximo
fim
5
FilasencadeadascomHeader
Registro tfila
inteiro dado
registro tfila *próximo
fim
Registro header
registro tfila *começo
inteiro qtde
registro tfila *final
fim 6
Enfileiras-filasencadeadas
Procedimento Enfileira (ref registro header *F; inteiro
valor; ref inteiro sinal);
inicio
registro tfila *aux, *p
aloca(p);
se (p = nulo)
entao sinal = 0
senao inicio
p->dado = valor
p->próximo = nulo
aux = F->final
F->final = p
se (F->começo = nulo) {Se fila estiver vazia....}
entao
F->começo = p
senao sinal = 1
aux->próximo = p; fim
F->qtde++ fim 7
Enfileirarsemheader-emC
void enfileirar(nodo **fila, int valor) {
nodo *aux;
nodo *p = (nodo *)malloc(sizeof(nodo));
p->dados = valor;
p->proximo = NULL;
if(*fila == NULL)
{ // Fila vazia
*fila = p;
} else {
aux = *fila;
while(aux->proximo != NULL)
{
aux = aux->proximo;
}
aux->proximo = p;
}
} 8
Desenfileirar-filasencadeadascom
HeaderFuncao Desenfileira (ref registro header *F; ref inteiro
sinal)
inicio
inteiro valor=0
registro tfila *aux
se (F->comeco = nulo)
entao sinal = 0
senao inicio
aux = F->comeco
valor = aux->dado
F->comeco = aux->proximo
se (aux = F->final)
entao F->final = nulo
libera(aux)
F->qtde--
sinal = 1
fim
retorna valor
fim
9
Desenfeileirarsemheader-emC
int desenfileirar(nodo **fila) {
int valor;
struct nodo *aux;
aux = *fila;
valor = aux->dados;
*fila = aux->proximo;
free(aux);
return valor;
}
10
Exercício
1) Escrever as seguintes subrotinas para a manipulação de
uma fila encadeada (sem header):
a) Procedimento para a inclusão de um novo na fila;
b) Função para a remoção de um valor da fila
c) Procedimento para exibir o conteúdo da fila;
d) Função que retorna true se a fila estiver vazia;
2) Faça um programa em C que utilize as subrotinas criadas
na questão anterior.
11
Exercício
3) Escreva um programa que recebe um número indeterminado de
valores positivos e negativos (sai quando o usuário digitar
0) e:
- se o valor digitado for negativo, remove o primeiro
elemento da fila;
- se o valor digitado já existir na fila, remover a
primeira ocorrência dele na fila.
12

Weitere ähnliche Inhalte

Was ist angesagt? (18)

Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada Estrutura de dados em Java - Filas com lista encadeada
Estrutura de dados em Java - Filas com lista encadeada
 
Pilha e Fila Dinamica
Pilha e Fila DinamicaPilha e Fila Dinamica
Pilha e Fila Dinamica
 
Estrutura de dados em Java - Filas
Estrutura de dados em Java - FilasEstrutura de dados em Java - Filas
Estrutura de dados em Java - Filas
 
Pilha e Fila Estática
Pilha e Fila EstáticaPilha e Fila Estática
Pilha e Fila Estática
 
Pilha em C
Pilha em CPilha em C
Pilha em C
 
Estrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas EncadeadasEstrutura de Dados - Listas Encadeadas
Estrutura de Dados - Listas Encadeadas
 
Aula14
Aula14Aula14
Aula14
 
Pilha
PilhaPilha
Pilha
 
Estrutura de Dados - PILHAS
Estrutura de Dados - PILHASEstrutura de Dados - PILHAS
Estrutura de Dados - PILHAS
 
Listas em C
Listas em CListas em C
Listas em C
 
Introdução à linguagem c
Introdução à linguagem cIntrodução à linguagem c
Introdução à linguagem c
 
Functional Python
Functional PythonFunctional Python
Functional Python
 
6 alocacao sequencial - pilhas
6   alocacao sequencial - pilhas6   alocacao sequencial - pilhas
6 alocacao sequencial - pilhas
 
Linguagem C - Strings
Linguagem C - StringsLinguagem C - Strings
Linguagem C - Strings
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivas
 
Cheat sheet Mips 32 bits
Cheat sheet Mips 32 bitsCheat sheet Mips 32 bits
Cheat sheet Mips 32 bits
 
Estudo dirigido arquitetura didática unidade de controle
Estudo dirigido arquitetura didática unidade de controleEstudo dirigido arquitetura didática unidade de controle
Estudo dirigido arquitetura didática unidade de controle
 
Linguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros PassosLinguagem C 01 Primeiros Passos
Linguagem C 01 Primeiros Passos
 

Andere mochten auch

Pesquisa do Instituto Mapa
Pesquisa do Instituto MapaPesquisa do Instituto Mapa
Pesquisa do Instituto MapaPaulo Bauer
 
Listagem atletas cadetes infantis-juvenis
Listagem atletas cadetes infantis-juvenisListagem atletas cadetes infantis-juvenis
Listagem atletas cadetes infantis-juvenisVasco Santos
 
Case RH e ERP Vale Fértil - Vetorh® Sapiens® Senior
Case RH e ERP Vale Fértil - Vetorh® Sapiens® SeniorCase RH e ERP Vale Fértil - Vetorh® Sapiens® Senior
Case RH e ERP Vale Fértil - Vetorh® Sapiens® SeniorSenior Sistemas
 
Hoja de vida 11 a cp
Hoja de vida 11 a cpHoja de vida 11 a cp
Hoja de vida 11 a cpLANDY01P
 
Formalidades na escrituração contábil
Formalidades na escrituração contábilFormalidades na escrituração contábil
Formalidades na escrituração contábilrazonetecontabil
 
Etequeiro n01 pg1
Etequeiro n01 pg1Etequeiro n01 pg1
Etequeiro n01 pg1O ETEQUEIRO
 
1979 os incriveis - os sucessos das paradas
1979   os incriveis - os sucessos das paradas1979   os incriveis - os sucessos das paradas
1979 os incriveis - os sucessos das paradassodajovem
 
Amy winehouse recopilacion de datos pdf
Amy winehouse  recopilacion de datos pdf Amy winehouse  recopilacion de datos pdf
Amy winehouse recopilacion de datos pdf gaba111
 
Portafolio digital
Portafolio digitalPortafolio digital
Portafolio digitalMaria Adarme
 
Marketing e Criacao de Valor
Marketing e Criacao de ValorMarketing e Criacao de Valor
Marketing e Criacao de ValorDiogo Teixeira
 
Ficha de calendarização - Palestra Diabetes
Ficha de calendarização - Palestra DiabetesFicha de calendarização - Palestra Diabetes
Ficha de calendarização - Palestra DiabetesGabriela Bruno
 

Andere mochten auch (20)

Aula apontadores
Aula apontadoresAula apontadores
Aula apontadores
 
Pesquisa do Instituto Mapa
Pesquisa do Instituto MapaPesquisa do Instituto Mapa
Pesquisa do Instituto Mapa
 
Poster par-97
Poster par-97Poster par-97
Poster par-97
 
1ª Jornada de Design
1ª Jornada de Design1ª Jornada de Design
1ª Jornada de Design
 
Listagem atletas cadetes infantis-juvenis
Listagem atletas cadetes infantis-juvenisListagem atletas cadetes infantis-juvenis
Listagem atletas cadetes infantis-juvenis
 
trabajo 1
trabajo 1trabajo 1
trabajo 1
 
Case RH e ERP Vale Fértil - Vetorh® Sapiens® Senior
Case RH e ERP Vale Fértil - Vetorh® Sapiens® SeniorCase RH e ERP Vale Fértil - Vetorh® Sapiens® Senior
Case RH e ERP Vale Fértil - Vetorh® Sapiens® Senior
 
Hoja de vida 11 a cp
Hoja de vida 11 a cpHoja de vida 11 a cp
Hoja de vida 11 a cp
 
Formalidades na escrituração contábil
Formalidades na escrituração contábilFormalidades na escrituração contábil
Formalidades na escrituração contábil
 
Comovil
ComovilComovil
Comovil
 
Etequeiro n01 pg1
Etequeiro n01 pg1Etequeiro n01 pg1
Etequeiro n01 pg1
 
Campos
CamposCampos
Campos
 
1979 os incriveis - os sucessos das paradas
1979   os incriveis - os sucessos das paradas1979   os incriveis - os sucessos das paradas
1979 os incriveis - os sucessos das paradas
 
Amy winehouse recopilacion de datos pdf
Amy winehouse  recopilacion de datos pdf Amy winehouse  recopilacion de datos pdf
Amy winehouse recopilacion de datos pdf
 
Power point omar trujillo
Power point omar trujilloPower point omar trujillo
Power point omar trujillo
 
Arvore completa
Arvore completaArvore completa
Arvore completa
 
Portafolio digital
Portafolio digitalPortafolio digital
Portafolio digital
 
Marketing e Criacao de Valor
Marketing e Criacao de ValorMarketing e Criacao de Valor
Marketing e Criacao de Valor
 
Poster par-67
Poster par-67Poster par-67
Poster par-67
 
Ficha de calendarização - Palestra Diabetes
Ficha de calendarização - Palestra DiabetesFicha de calendarização - Palestra Diabetes
Ficha de calendarização - Palestra Diabetes
 

Ähnlich wie Filas encadeadas (17)

Aula 10
Aula 10 Aula 10
Aula 10
 
Aula 9
Aula 9Aula 9
Aula 9
 
Py sintaxe
Py sintaxePy sintaxe
Py sintaxe
 
7 alocacao sequencial - filas
7   alocacao sequencial - filas7   alocacao sequencial - filas
7 alocacao sequencial - filas
 
Pged 06
Pged 06Pged 06
Pged 06
 
Pilhas e Filas.ppt
Pilhas e Filas.pptPilhas e Filas.ppt
Pilhas e Filas.ppt
 
Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10Pymordida0 Semana de computação da SOCIESC - 2008/10
Pymordida0 Semana de computação da SOCIESC - 2008/10
 
Slides pilhas e_filas
Slides  pilhas e_filasSlides  pilhas e_filas
Slides pilhas e_filas
 
Função malloc
Função mallocFunção malloc
Função malloc
 
Pilha ad
Pilha adPilha ad
Pilha ad
 
Listas Estáticas Encadeadas usando linguagem C
Listas Estáticas Encadeadas usando linguagem CListas Estáticas Encadeadas usando linguagem C
Listas Estáticas Encadeadas usando linguagem C
 
Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08Estrutura de Dados - Aula 08
Estrutura de Dados - Aula 08
 
2 funcoes e estrutura de blocos
2   funcoes e estrutura de blocos2   funcoes e estrutura de blocos
2 funcoes e estrutura de blocos
 
Aula03 Filas
Aula03   FilasAula03   Filas
Aula03 Filas
 
Pilhas e filas
Pilhas e filasPilhas e filas
Pilhas e filas
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 
Canivete shell
Canivete shellCanivete shell
Canivete shell
 

Filas encadeadas

  • 1. FilasEncadeadas Estruturas de Dados I Universidade Luterana do Brasil Prof Fabiana Lorenzi
  • 2. Filas ● FIFO - First in first out ● O primeiro a entrar é o primeiro a sair ● Dentre os elementos que ainda permanecem no conjunto, o primeiro elemento a ser retirado é o primeiro que foi inserido ● Toda fila deve ter uma começo e um final (usar variáveis para indicar cada um deles) 2
  • 4. Operaçõespossíveisemumafila O acesso a uma fila é realizado somente de 2 formas: Enfileirar (inserir um novo elemento no final da fila). Desenfileirar (remover o elemento do início da fila). 4
  • 6. FilasencadeadascomHeader Registro tfila inteiro dado registro tfila *próximo fim Registro header registro tfila *começo inteiro qtde registro tfila *final fim 6
  • 7. Enfileiras-filasencadeadas Procedimento Enfileira (ref registro header *F; inteiro valor; ref inteiro sinal); inicio registro tfila *aux, *p aloca(p); se (p = nulo) entao sinal = 0 senao inicio p->dado = valor p->próximo = nulo aux = F->final F->final = p se (F->começo = nulo) {Se fila estiver vazia....} entao F->começo = p senao sinal = 1 aux->próximo = p; fim F->qtde++ fim 7
  • 8. Enfileirarsemheader-emC void enfileirar(nodo **fila, int valor) { nodo *aux; nodo *p = (nodo *)malloc(sizeof(nodo)); p->dados = valor; p->proximo = NULL; if(*fila == NULL) { // Fila vazia *fila = p; } else { aux = *fila; while(aux->proximo != NULL) { aux = aux->proximo; } aux->proximo = p; } } 8
  • 9. Desenfileirar-filasencadeadascom HeaderFuncao Desenfileira (ref registro header *F; ref inteiro sinal) inicio inteiro valor=0 registro tfila *aux se (F->comeco = nulo) entao sinal = 0 senao inicio aux = F->comeco valor = aux->dado F->comeco = aux->proximo se (aux = F->final) entao F->final = nulo libera(aux) F->qtde-- sinal = 1 fim retorna valor fim 9
  • 10. Desenfeileirarsemheader-emC int desenfileirar(nodo **fila) { int valor; struct nodo *aux; aux = *fila; valor = aux->dados; *fila = aux->proximo; free(aux); return valor; } 10
  • 11. Exercício 1) Escrever as seguintes subrotinas para a manipulação de uma fila encadeada (sem header): a) Procedimento para a inclusão de um novo na fila; b) Função para a remoção de um valor da fila c) Procedimento para exibir o conteúdo da fila; d) Função que retorna true se a fila estiver vazia; 2) Faça um programa em C que utilize as subrotinas criadas na questão anterior. 11
  • 12. Exercício 3) Escreva um programa que recebe um número indeterminado de valores positivos e negativos (sai quando o usuário digitar 0) e: - se o valor digitado for negativo, remove o primeiro elemento da fila; - se o valor digitado já existir na fila, remover a primeira ocorrência dele na fila. 12