Visualizzazione dei risultati da 1 a 2 su 2

Discussione: [C] liste :(

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    4

    [C] liste :(

    Ragazzi ma secondo voi xchè questo codice fa' l inverso di quello che dovrebbe fare? ovvero, io ho una lista di cui voglio scandire gli elementi per togliere quelli che , in base ad un operazione,mi risultano essere i piu' lontani da un punto, e tenere solo quelli con la distanza minore;
    i nodo lista hanno un campo int dist,x,y; e testa punta all inizio della lista, x e y sono le 2 coordinate:

    void cerca_minimo(int x, int y){

    nodo *p;
    int dist;

    for(p = testa; p!=NULL; p = p->next){
    do {
    dist = (abs(x - p->x)) + (abs(y - p->y));/*operazione per distanza*/
    p->dist = dist;/*inserisco nel campo di ciascun nodo il suo dist*/
    if (p->dist > p->next->dist)
    testa = elimina(testa,p); /*funz. che elimina un nodo da lista*/
    else if (p->dist < p->next->dist)
    testa = elimina_pref(testa,p->next);
    } while (p->next!=NULL);
    }
    }

    tks
    La verità è accessibile a tutti...

    Seneca

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2002
    Messaggi
    4
    ho modificato un po' la funzione, ma ancora cè qualche problema.... solo una cosa, è giusto questo codice?

    void min(void){/*confronto tra campi interi di una lista*/

    nodo *p;

    for(p = testa; p!=NULL; p = p->next){/*testa punta al 1 elemento*/
    do {
    if (p->dist > p->next->dist)
    testa = elimina(testa,p);/*elimina il nodo*/
    else if (p->dist < p->next->dist)
    testa = elimina(testa,p->next);
    } while (p->next!=NULL);
    }
    }

    perchè non va?
    La verità è accessibile a tutti...

    Seneca

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.