Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C] scorrere e controllare una lista

    ciao a tutti.
    ho scritto questa funzione con lo scopo di scorrere una lista di coordinate e di eliminare eventuali elementi uguali e di sostituirli con altri generati in modo pseudo casuale.
    le funzioni ncoord_couple_generation e delete_element rispettivamente servono per generare e per eliminare una coppia di coordinate e penso che non abbiano problemi.
    ho devi problemi in fase di esecuzione perchè la lista non viene scorsa bene.
    grazie per l'interessamento




    codice:
    int check(LISTCOORD_PTR *sptr, NICONST_PTR consts_ptr){
    	int c = 0;
    	LISTCOORD_PTR previousptr, currentptr;
    	previousptr = *sptr;
    	while (previousptr != NULL){
    		currentptr = previousptr->listcoordptr;
    		while(currentptr != NULL){
    			if(previousptr->ascissa == currentptr->ascissa && previousptr->ordinata == currentptr->ordinata){
    				c += 1;
    				delete_element(sptr, currentptr);
    				currentptr = ncoord_couple_generation(consts_ptr);
    				ncoord_insert(sptr, currentptr);}
    			currentptr = currentptr->listcoordptr;}
    		previousptr = previousptr->listcoordptr;}
    	if (c != 0)
    		return 1;
    	else
    		return 0;
    }
    
    
    struct listcoord
    {
      double ascissa;
      double ordinata;
      struct listcoord* listcoordptr;
    }listcoord;
    
    typedef struct listcoord LISTCOORD;
    typedef LISTCOORD *LISTCOORD_PTR;

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    117
    senti, forse è solo una mia opinione, ma il tuo codice è un pò
    caotico. non si capisce molto bene come dovrebbe funzionare
    questo algoritmo, cmq da quello che ho capito dovrebbe essere
    corretto (a parte il fatto che se la tua testa temporanea è il terzo nodo, ora stai esamindo il quinto, sono uguali, generi
    random e sfortunatamente esce lo stesso numero che sta nel
    primo nodo non lo saprai mai). volendo potresti scrivere le
    altre due procedure (e se riscrivi un pò più chiaramente
    questa allora forse ti si può aiutare di più...)

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 © 2024 vBulletin Solutions, Inc. All rights reserved.