Ejemplo n.º 1
0
/*Paassa por todos os elementos da árvore para calcular a moda*/
void ordena(Words* a)
{
    if(a!=NULL)
    {
        a->vizinhos = ordena_lista(a->vizinhos);
        ordena(a->esq);
        ordena(a->dir);
    }
}
Ejemplo n.º 2
0
int main(void){
	T_LISTA mi_lista;
	mi_lista=crear_lista();
	mostrar_lista(mi_lista);
	printf("\n\n---------------------\n\n");
	ordena_lista(&mi_lista);
	mostrar_lista(mi_lista);
	return 0;
}
Ejemplo n.º 3
0
/*FUNÇÃO AUXILIAR: BUBBLE SORT em uma LSE*/
Vizinhos* ordena_lista(Vizinhos *a)
{

    if(a == NULL || a->prox == NULL)
        return a;


    Vizinhos *atual, *maior,*ant_maior,*anterior,*tmp;

    atual = a;
    maior = a;
    anterior = a;
    ant_maior = a;

    while(atual != NULL)
    {
        if(atual->moda > maior->moda)
        {
            ant_maior = anterior;
            maior = atual;
        }
        anterior = atual;
        atual = atual->prox;
    }

    if(maior != a)
    {
        ant_maior->prox = a;
        tmp = a->prox;
        a->prox = maior->prox;
        maior->prox = tmp;
    }

    maior->prox = ordena_lista(maior->prox);


    return maior;
}