Ir para o conteúdo
tjsneves

ordenar lista ligada

Mensagens Recomendadas

tjsneves    0
tjsneves

boas..eu gostava de saber se é possível usar uma só função para ordenar todos os campos de uma estrutura de uma lista ligada tendo em conta que são todos char...

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
tjsneves    0
tjsneves

por exemplo tendo uma estrutura com nome,morada e destino se quiser arranjar uma funçao que ordene por um dos campos que o utilizador peça...e que tou a ver e acho k neste caso tenho de fazer cada uma das funçoes a mao..

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pedrosorio    5
pedrosorio

Nem por isso.

Se souberes ordenar uma lista ligada que contenha inteiros, ordenar isso é semelhante só que o critério de comparação será um strcmp. Só precisas de receber um número para saber qual o critério de comparação a utilizar, por exemplo 1 para nome, 2 para morada e 3 para destino. Supondo que os nós da tua lista ligada são "struct No" e que tens strings nome, morada e destino em cada um deles, a função que compara dois nós seria algo deste estilo:

int compara(struct No* no1,struct No* no2,int criterio) {
  switch(criterio) {
    case 1: return strcmp(no1->nome,no2->nome);
    case 2: return strcmp(no1->morada,no2->morada);
    case 3: return strcmp(no1->destino,no2->destino);
  }
}

Se antes tinhas uma lista ligada com números e fazias:

if(no1->num > no2->num)

agora farias:

if(compara(no1,no2,criterio)) //criterio: 1--nome, 2--morada, 3--destino

Partilhar esta mensagem


Link 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