Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- typedef struct elemento_t{
- int dado;
- int id;
- struct elemento_t* prox;
- } elemento_t;
- typedef struct elemento_t lista_t;
- elemento_t* aloca_elemento(int valor, int id){
- elemento_t* ptr = (elemento_t *) malloc(sizeof(elemento_t));
- if(!ptr)
- return NULL;
- ptr->dado = valor;
- ptr->prox = NULL;
- ptr->id = id;
- return ptr;
- }
- void inserir_final(lista_t** lista, int valor, int id ){
- lista_t** ptr = lista;
- if( !lista )
- return;
- while(*ptr) {
- ptr = &((*ptr)->prox);
- }
- *ptr = aloca_elemento(valor, id);
- (*ptr)->id = id;
- }
- void imprime_lista(lista_t** lista){
- lista_t** ptr = lista;
- if( !lista )
- return;
- while(*ptr) {
- printf("%d - %d\n", (*ptr)->id, (*ptr)->dado);
- ptr = &((*ptr)->prox);
- }
- printf("\n");
- }//end imprime_lista()
- void imprime_lista_posicoes(lista_t** lista){
- lista_t** ptr = lista;
- int i = 1;
- if( !lista )
- return;
- while(*ptr) {
- printf("%d - %d\n", i++, (*ptr)->id);
- ptr = &((*ptr)->prox);
- }
- printf("\n");
- }//end imprime_lista()
- int main() {
- lista_t *lista_original = NULL;
- lista_t *lista_normal = NULL;
- lista_t *lista_prioridade = NULL;
- lista_t *ptr_aux;
- int id;
- int i = 1;
- while(scanf("%d", &id) > 0){
- inserir_final(&lista_original, id, i++);
- }
- printf("Fila geral original\n");
- imprime_lista(&lista_original);
- ptr_aux = lista_original;
- while(ptr_aux) {
- if(ptr_aux->dado >= 60)
- inserir_final(&lista_prioridade, ptr_aux->dado, ptr_aux->id);
- else
- inserir_final(&lista_normal, ptr_aux->dado, ptr_aux->id);
- ptr_aux = ptr_aux->prox;
- }
- printf("Fila preferencial\n");
- imprime_lista(&lista_prioridade);
- printf("Fila geral atualizada\n");
- imprime_lista(&lista_normal);
- printf("Resultado esperado fila preferencial\n");
- imprime_lista_posicoes(&lista_prioridade);
- printf("Resultado esperado fila geral\n");
- imprime_lista_posicoes(&lista_normal);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement