Informatica Sem Problemas
Dissertações: Informatica Sem Problemas. Pesquise 861.000+ trabalhos acadêmicosPor: disanti11 • 14/9/2014 • 373 Palavras (2 Páginas) • 266 Visualizações
// Implementação de Fila através de apontadores ou ponteiros.
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "stdlib.h"
// modelo matemático (estrutura de dados)
struct TipoItem { // cada item da fila corresponde a um
char nome[30]; // registro (TipoItem) composto apenas
}; // do campo nome
typedef struct Celula *Apontador; // define o tipo "Apontador" como sendo o
// endereço de uma "Celula"
struct Celula {
TipoItem Item;
Apontador prox;
};
struct TipoFila {
Apontador Frente;
Apontador Final;
int Tamanho;
};
// conjunto de operações que podem ser aplicadas sobre o modelo 'TipoFila'
void FazFilaVazia(TipoFila *Fila);
int FilaVazia(TipoFila *Fila);
void Enfileira(TipoItem x, TipoFila *Fila);
int Desenfileira(TipoFila *Fila, TipoItem *x);
void ImprimeFila(TipoFila *Fila);
void main() {
TipoItem x;
TipoFila Fila;
FazFilaVazia(&Fila); // faz a Fila ficar vazia
while (1) {
ImprimeFila(&Fila);
printf("\nInforme um nome do item a ser enfileirado, (FIM) para encerrar:\n");
gets(x.nome);
if (strcmp(x.nome, "FIM") == 0)
break;
Enfileira(x, &Fila);
}
}
// Faz a 'Fila' ficar vazia criando a célula cabeça
void FazFilaVazia(TipoFila *Fila) {
Fila->Frente = (Apontador) malloc(sizeof(Celula));
Fila->Final = Fila->Frente;
Fila->Frente->prox = NULL;
Fila->Tamanho = 0;
}
// Esta função retorna 1 (true) se a ‘Fila’ está vazia; senão retorna 0 (false)
int FilaVazia(TipoFila *Fila) {
...