Buscar

fila estrutura de dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 19 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Estrutura de dadosEstrutura de dados
FILA FILA 
20132013
Prof Melo
Apresentação
• Técnico em Desenvolvimento de Sistemas - Ibratec, Recife-PE
• Bacharel em Sistemas de Informação – FIR, Recife-PE
• Especialista em Docência no Ensino Superior – Faculdade 
Maurício de Nassau, Recife-PE
• Mestre em Ciência da Computação – UFPE/CIN, Recife-PE
• Currículo Lattes http://lattes.cnpq.br/0759508594425296)
• Homepage https://sites.google.com/site/hildebertomelo/
Disciplinas Lecionadas
• Desenvolvimento de Aplicações Desktop
• Programação Orientada a Objetos
• Estrutura de Dados
• Tecnologia da Informação & Sociedade
• Sistemas Operacionais
• Sistemas Distribuídos
• Introdução a Informática
• Lógica de Programação
• Informática Aplicada a Saúde
• Banco de Dados
• Projeto de Banco de Dados
• Análise de Projetos Orientado a Objetos
• Programação Cliente Servidor
• Linguagens de Programação: C, C#, Pascal, PHP, ASP, Delphi, Java, JavaScript
• Programação WEB
FILA
• Uma fila é uma lista linear na qual todas as 
inserções são realizadas em uma das 
extremidades (fim da fila). E, além disso, 
todas as remoções e os acessos são 
realizados em outra extremidade (início da 
fila). Esse é o motivo pelo qual as filas são 
denominadas listas FIFO (First-In First-
Out). 
FILA
• Cada vez que uma operação de inserção é
executada, um novo elemento é colocado no final 
da fila. Na remoção, é sempre retornado o 
elemento que aguarda há mais tempo na fila, ou 
seja, aquele posicionado no começo. A ordem de 
saída corresponde diretamente à ordem de 
entrada dos elementos na fila, de modo que os 
primeiros elementos que entram são os primeiros 
a sair.
FILA
• Um exemplo bastante comum de filas verifica-se 
num balcão de atendimento onde pessoas formam 
uma fila para aguardar até serem atendidas. 
Naturalmente, devemos desconsiderar os casos de 
pessoas que “furam” a fila ou que desistem de 
aguardar! Diferentemente das filas no mundo real, 
o tipo de dados abstrato não suporta
FILA
• Uma fila suporta três operações básicas, 
tradicionalmente denominadas como: 
• - Top: acessa o elemento posicionado no início 
da fila;
• - Push: insere um novo elemento no final da 
fila;
• - Pop: remove um elemento do início da fila.
FILA
• Exemplos de declaração de uma FILA em C
Typedef struct registro{ 
char nome[60];
int idade;
float salario; 
}tregistro;
Typedef struct fila{
struct registro dado;
struct fila *prox;
}tfila;
Tfila *inicio;
Tfila *fim;
Inserir – FILA - Passos
• Alocar memória para um elemento auxiliar do 
tipo fila
• Verificar se a FILA está vazia
– Sim – vazia
• O fim e o início da fila deverão apontar para o mesmo endereço 
de memória(auxiliar)
– Não 
• Fazer a inclusão do elemento no final da fila
• Este elemento recém criado deverá ser o fim da fila
• O próximo do final deverá apontar para NULL
Inserir FILA - PUSH
• void Inserir () {
– Tfila * aux = (Tfila *)malloc (sizeof(Tfila));
– if ( (*inicio) == NULL) {
– *inicio = *aux;
– } else {
– (*fim).prox = *aux;
– }
– (*fim) = *aux;
– Scanf(“%s”,(*fim).dado.nome);
– Scanf(“%i”,(*fim).dado.idade);
– Scanf(“%f”,(*fim).dado.salario);
• }
Ler – FILA - Passos
• Verificar se a fila está vazia
–Sim – vazia
• Exibir mensagem de fila vazia
–Não – vazia
• Exibir as informações do início da fila
Ler FILA - TOP
• void ler () {
– if (*inicio != NULL) {
• printf(“%s”,(*inicio).dado.nome);
• printf(“%i”,(* inicio).dado.idade);
• printf(“%f”,(* inicio).dado.salario);
– } else{
• Printf(“Fila vazia”);
– }
• }
Remover – FILA - Passos
• declarar um elemento auxiliar do tipo fila, para 
marcar o início que deverá ser removido
• Verificar se a FILA está vazia
– Não – vazia
• Marcar o início da fila com a variável auxiliar
• Atualizar o início da fila, o início da fila deverá ser o elemento 
logo depois do início
• Devolver a memória do antigo início (aux)
– Sim
• Exibir a mensagem fila vazia
Remover FILA - POP
• void remover () {
– Tfila * aux; 
– if (*inicio != NULL) {
• (*aux) = *inicio;
• (*inicio) = (*inicio).prox;
• Free(*aux);
– } else{
• Printf(“Fila vazia”);
– }
• }
Destruir - FILA
• Ao terminar o programa deveremos 
devolver todos os espaços de memória 
requisitados, para isso criaremos um 
procedimento para destruir a FILA
Destruir - FILA
• void Destruir () {
• Tfila *aux = (*inicio);
• while (*inicio != NULL) {
• (*inicio) = *inicio.prox;
• free (*aux);
• *aux = (*inicio);
• }
• (*inicio) = NULL;
• }
Perguntas...
Bibliografia
• Livro(s) Texto(s):
• PREISS, Bruno R. Estrutura de Dados e 
Algoritmos. Rio de Janeiro: Campus, 2001.
• PEREIRA, Silvio L. Estruturas de dados 
fundamentais. São Paulo: Érica, 2000.
• AZEREDO, Paulo A. Métodos de 
Classificação de Dados e Análise de suas 
Complexidades. Rio de Janeiro: Campus, 
1995.
Bibliografia
• Livros de referencia:
• WEISS, M. A. Data structures and algorithm 
analysis in C++. California: Benjamin/Cummings, 
1999.
• SEDGEWICK, R. Algorithms in C++: Fundamentals, 
data structures, sorting, searching. New York: 
Addison-Wesley, 2001.
• TANENBAUM, Aaron; LANGSAM, Y. & 
AUGENSTEIN, M. Estruturas de Dados usando C. 
São Paulo: Makron Books, 1995.
• LAFORE, R. Aprenda em 24 horas estrutura de 
dados e algoritmo. Rio de Janeiro: Campus, 1999.
• MORAES, Celso R. Estruturas de Dados e 
Algoritmos. São Paulo: Berkeley Brasil, 2001.

Continue navegando

Outros materiais