programadores utilizam filas para representar estruturas de dados que trabalham pela First In , First Out ( FIFO) diretriz. Isso significa que todos os dados inseridos na estrutura anexa a uma lista de dados , e os dados que tem sido na lista o mais longo será o primeiro a ser removido. Na linguagem de programação C , um programador melhor implementa uma forma de base dessa estrutura usando uma lista encadeada e várias indicações para manter a ordem dos dados . Instruções
1
Crie a estrutura de nó de dados ea estrutura de lista. A fim de que a lista encadeada para funcionar como uma fila , a lista deverá conter nós capazes de referenciar o nó seguinte na lista e dois indicadores que referenciam o início e o fim da lista . Estas estruturas exemplo mostrar um modelo básico para os nós da lista e da estrutura de fila :
struct node {
int dados;
struct * Nó próximo ;
} ;
struct queue_list {
struct * nó primeiro //ponteiro para o primeiro item
struct * nó passado //ponteiro para o último item < br >
}
2
Implementar um algoritmo de inserção de dados. Em uma fila , o programa deve sempre acrescentar os dados para o fim da lista . Além disso , a lista deve fazer referência ao último elemento , então inserções futuras saber em que acabar a acrescentar. O exemplo a seguir mostra um algoritmo simples para acrescentar um nó com dados em uma fila :
inserção void ( struct * fila q, int value ) {
struct * nó newNode = malloc ( sizeof ( nó struct) );
newNode - > data = valor ;
newNode -> next = NULL;
if ( q- > primeiro == NULL ) {
q- > primeiro = q- > fim = newNode //se a lista estiver vazia, o primeiro eo último = newNode
}
else { < br >
-q > última -> next = newNode ; //anexa newNode após o último elemento
-q > last = último -> next; //ponto de "último" ponteiro para o novo nó
}
}
3
Implementar um algoritmo de remoção. Este algoritmo terá o valor do primeiro nó na lista. Em seguida, ele irá apontar o ponteiro do " primeiro " para o próximo nó e excluir o primeiro nó. Isso fará com que o próximo nó da nova primeira posição na lista, pronto para remoção. O exemplo a seguir mostra um algoritmo para fazer isso:
int remover (struct * fila q) {
int valor = q -> primeiro -> data ;
struct * nó temp = q- > primeiro ;
q- > primeiro = q -> primeiro -> next; //move o primeiro ponteiro para o próximo item
livre ( temp) ; //exclui o antigo primeiro nó
valor retornar //retorna o primeiro valor ;
}
4
Declarar e usar uma fila . O programador pode declarar uma fila como variável do tipo " fila struct " e use as funções definidas para adicionar e remover itens. O exemplo a seguir mostra como declarar e usar uma estrutura de fila :
int main () {
struct fila q;
inserir (& q, 5 ) //usos uma referência a "q" para evitar cópias rasas
Insert ( & Q , 6);
int x = remover (& q ) //x = 5
< br >