TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Trabalho Filas C

Por:   •  11/5/2015  •  Trabalho acadêmico  •  689 Palavras (3 Páginas)  •  282 Visualizações

Página 1 de 3

/* ***************************************************

* Escrever um procedimento que retira os valores pares de uma fila. Importante:

* 1) Não utilizar estrutura auxiliar !! Utilizar a mesma fila.

* 2) Fazer o procedimento em C para apresentar e fazer o programa principal que chame e teste este procedimento.

*

***************************************************** */

#include <stdio.h>

#include <malloc.h>

// Definição da Estrutura de Fila.

struct Fila {

int dado;

struct Fila *proximo;

};

// Função que adiciona um item na fila.

int enfileira(struct Fila **inicio, struct Fila **fim, int valor){

struct Fila *fila; // Define o novo nodo.

fila = malloc(sizeof(struct Fila)); // Aloca o novo nodo na memória.

// Verifica se a alocação deu certo

if(fila != NULL) {

fila->dado = valor;

fila->proximo = NULL;

if(*fim != NULL)

(*fim)->proximo = fila;

else

*inicio = fila;

*fim = fila;

// Tudo certo, retorna 1;

return 1;

} else return 0; // Deu pau, retorna 0 para erro.

}

// Função que conta os items da fila.

int conta_fila(struct Fila **fila){

struct Fila *aux;

aux = *fila;

int total = 0;

// Enquanto não for nulo.

while(aux != NULL) {

total += 1; // Conta e pega o próximo.

aux = aux->proximo;

}

return total;

}

// Função que verifica se a fila tem dados.

int testa_fila(struct Fila **inicio) {

if(inicio == NULL || (*inicio)->proximo == NULL)

return 1; // Fila Vazia.

return 0; // Fila Com Dados

}

// Função que remove os pares.

void remove_pares(struct Fila **inicio, struct Fila **fim) {

// Aqui vai a lógica de remoção dos pares.

struct Fila *aux, *p;

aux = *inicio;

while (aux != NULL){

if (aux->dado % 2 == 0){

p = aux;

if (*inicio == aux){

p = aux->proximo;

*inicio = p;

}

if (*fim == aux){

*fim = p;

aux = aux->proximo;

free (*p);

} else {

p = aux;

aux = aux->proximo;

}

}

}

}

// Função que mostra os dados da

...

Baixar como (para membros premium)  txt (3.7 Kb)   pdf (46 Kb)   docx (13.2 Kb)  
Continuar por mais 2 páginas »
Disponível apenas no TrabalhosGratuitos.com