tjsneves Posted May 24, 2009 at 01:23 PM Report #266902 Posted May 24, 2009 at 01:23 PM 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...
TheDark Posted May 24, 2009 at 02:55 PM Report #266919 Posted May 24, 2009 at 02:55 PM Isso é um bocado... abstracto B) O que entendes por "ordenar todos os campos"? Desaparecido.
tjsneves Posted May 24, 2009 at 03:20 PM Author Report #266925 Posted May 24, 2009 at 03:20 PM 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..
pedrosorio Posted May 24, 2009 at 05:06 PM Report #266932 Posted May 24, 2009 at 05:06 PM 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 Não respondo a dúvidas por mensagem.
tjsneves Posted May 25, 2009 at 09:57 AM Author Report #267043 Posted May 25, 2009 at 09:57 AM ok...vou tentar por a funcionar...dps digo algo.obrigado 😉
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now