void desembarque(Pilha* p){ Fila* f = getfila(); while(!pilha_vazia(p)){ Mala* m = pilha_pop(p); fila_insere(f,m); } imprime_fila(f); pilha_libera(p); fila_libera(f); printf("\nDesembarque Realizado com Sucesso!\n"); }
void separa_filas (Fila* f, Fila* f_prioridade, Fila* f_convencional) { Lista* l = f->ini; if (!fila_vazia(f)) { while (l != NULL) { if ((2015 - l->info) >= 65) { fila_insere(f_prioridade, l->info); } else { fila_insere(f_convencional, l->info); } l = l->prox; } } }
int main (void) { Fila* f = fila_cria(); Fila* f_p = fila_cria(); Fila* f_c = fila_cria(); fila_insere(f, 2004); fila_insere(f,1905); separa_filas(f, f_p, f_c); printf("prioridade:%f\n", f_p->ini->info); printf("convencional:%f\n", f_c->ini->info); fila_libera(f); free(f->ini); free(f->fim); free(f); return 0; }
Fila* arq_leCaminhamentoPreordem (FILE *fp, infotype *contador){ Fila* f = fila_criavazia(); infotype valor = 0; while (!feof(fp)){ /* Lemos o valor do arquivo, inserimos na fila, e incrementamos o tamanho */ fscanf (fp, "%d\n", &valor); fila_insere (f, valor); *contador = *contador + 1; } /* Retornamos a fila com todos os elementos do arquivo do percorrimento preordem */ return f; }