void swap_list(lista_enc_t *list, no_t *fonte, no_t *destino)
{
    if (list == NULL) {
        fprintf(stderr, "swap_list: Invalid pointer!");
        exit(EXIT_FAILURE);
    }

    if (list->cabeca == fonte)
        list->cabeca = destino;

    if (list->cauda == destino)
        list->cauda = fonte;


    swap_nos(fonte, destino);

}
void ordena_tarefas(lista_enc_t* lista_tarefas)
{
    tarefa_t* p_tarefa;
    tarefa_t* p_tarefa_next;
    no_t* p_no;
    int tamanho, i;

    for(tamanho = tamanho_lista(lista_tarefas); tamanho>1; tamanho--){
        p_no = obter_cabeca(lista_tarefas);
        for(i=0; i<(tamanho-1); i++){
            p_tarefa = (tarefa_t*) obter_dado(p_no);
            p_no = obtem_proximo(p_no);
            p_tarefa_next = (tarefa_t*) obter_dado(p_no);
            if(tarefa_get_periodo(p_tarefa) > tarefa_get_periodo(p_tarefa_next)){
                swap_nos(lista_tarefas, obtem_anterior(p_no));
            }
        }
    }
}