Como implementar uma fila em C

Como implementar uma fila em C
Uma estrutura de dados em C é um método de organização e salvar dados na memória. O idioma c inclui muitas estruturas de dados de usuário inerentes e definidas que podem ser aplicadas para armazenar e modificar dados de várias maneiras. Uma das principais estruturas de dados definidas pelo usuário é filas. Filas são frequentemente utilizados no campo da ciência da computação para atividades como manuseio de pacotes e manuseio de eventos.

Este artigo discutirá todos os aspectos de filas e sombrear a implementação de filas Na programação C.

O que são filas em C

O fila é uma estrutura de dados com flexibilidade cujo tamanho pode ser aumentado em resposta à demanda. Elementos de vários tipos de dados podem ser armazenados no fila. O fila é feito usando a primeira abordagem da primeira saída. O fila Estrutura para dados é útil se você precisar recuperar dados no mesmo formato em que eles foram salvos.

Operações básicas de fila

Enquadre: Esta ação move um item do lado final do fila.

Dequeue: A operação eliminará o componente no início do fila.

Frente: Esta ação retorna o primeiro valor em um fila sem excluí -lo.

Está vazia: Esta operação verifica se o fila é nulo ou não.

Traseira: O elemento ponteiro supervisiona a recuperação do final fila elemento.

Implementação de filas em C através de matrizes

A implementação do filas é muito simples usando matrizes para salvar fila elementos. Existem dois pontos principais em filas; um é o traseira ponteiro que é útil para adicionar elementos na frente do filas E o outro é frente o que é útil para remover elementos do fila. Ambos os ponteiros são iguais a -1 quando o fila é nulo. O ponteiro traseira não pode avançar quando o fila está cheio de seus elementos.

A seguir, é baseado em uma matriz fila Implementação da estrutura de dados na programação C.

#incluir
Fila Int [100];
int dianteiro, traseiro = -1;
int vazio ()
return (front == -1 && rear == -1);

int completo ()
retornar (traseiro == 100-1);

void Enqueue (int valor)
if (completo ())
printf ("A fila frontal está cheia: Ocorreu o erro \ n");
retornar;

else if (vazio ())
frente, traseira = 0;

outro
traseiro ++;

fila [traseira] = valor;

void dequeue ()
if (vazio ())
printf ("O erro ocorre como a fila é nula \ n");
retornar;

else if (front == traseiro)
frontal, traseira = -1;

outro
front ++;


int front_element ()
if (vazio ())
printf ("O erro ocorre quando a fila está vazia \ n");
retornar -1;

retornar a fila [frente];

void print_queue ()
if (vazio ())
printf ("fila é nulo \ n");

outro
printf ("Elementos das filas são:");
para (int i = front; i<= rear; i++)
printf ("%d", fila [i]);

printf ("\ n");


int main ()
enquadrar (2);
enquadrar (5);
enquadrar (88);
enquadrar (46);
enquadrar (3);
print_queue ();
printf ("Depois de chamar a função Dequeue. \ n ");
dequeue ();
print_queue ();
printf ("O elemento presente na frente da fila é: %d \ n", front_element ());
retornar 0;

Na implementação acima, para mostrar que a fila está vazia, ambos traseira e frente Os índices estão configurados para (-1). A execução começa a partir do principal() função onde enquistar () função insere um componente no Fila traseiro aumentando o traseira índice ao definir o fila o valor da matriz no recém -criado traseira índice para o valor fornecido. Ao aumentar o índice frontal, o Dequeue () o método elimina o componente que está na vanguarda do fila. O FRONT_ELEMENT () o método retorna o que é armazenado no Fila frente, enquanto o print_queue () Método imprime o Fila componentes.

Saída

Conclusão

O fila é uma estrutura de dados com um arranjo linear que usa o padrão FIFO, o que significa que o elemento que foi adicionado ao fila primeiro será retirado primeiro. Fornece inserção e exclusão rápida de fila Unid. Em termos de alocação de memória, filas são eficientes. O artigo acima mostrou a você várias operações que podem ser executadas em filas.