Ir para o conteúdo
Daniel Gonçalves

Ordenar Listas Ligadas

Mensagens Recomendadas

Daniel Gonçalves

Boa tarde, estou a meio de um projeto que consiste num programa básico para gerir uma turma. Estou a utilizar listas duplamente ligadas e não consegui avançar na parte de criar uma função que ordene a lista por ordem crescente de número. Alguém tem sugestões? Obrigado

Editado por Daniel Gonçalves

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

usa um ds muitos algoritmos de ordenção existentes

para simplificar, podes implementar o bubble sort

  • Voto 1

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Daniel Gonçalves

A minha dúvida está mesmo na parte em implementar essa parte porque me baralho todo na parte de usar "->seguinte".

Fica algo do género?:

aux->lista

lista=lista->seguinte

lista->seguinte = aux

Obrigado

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Daniel Gonçalves

Num array, ordenação por BubbleSort é assim (exemplo):

for( int j=0; j < i ; j++)

{

if(vetor[j]>vetor[j+1])

{

aux = vetor[j];

vetor[j] = vetor[j+1];

vetor[j+1] = aux;

}

}

A minha dúvida é: Numa lista ligada, ficaria como no exemplo abaixo?

for (int i = endereco - 1; i >= 1; i--)

{

for (int j = 0; j < i; j++)

{

if ((lista->num)>(lista->num))

{

aux = lista;

lista= lista->seguinte;

lista->seguinte = aux;

}

}

}

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

no código que apresentas não estás a iterar a posição na lista assim como não estás a tratar do segundo ponteiro, isto porque referes que estas a trabalhar com listas duplamente ligadas


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.