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

    [c++] problemi con liste

    salve, ho svolto queste procedure e funzioni

    codice:
    int albPercorsi( int scacchiera[][N], nodoPasso& percorso){
        int n=0;
        int i=0;
        int m=0;
        bool flag=true; //variabile per ciclio
        while((i<N*2)&&(flag)){ //metto N*2 trattandosi di matrice
    
        if ((scacchiera[n+1][m])==0){
                inserisciNodoCoda('A', percorso);
                    i++;
                    }
                    else if ((scacchiera[n][m+1])==0){
                                   inserisciNodoCoda('B', percorso);
                    i++;
                    }
                    else 
                        flag=false;
        }   //fine while
    
        if (flag==true)
            return 1;
            else
                    return 0;
                    
    }
    
    // procedura stampa lista
    
    void stampalista(nodoPasso percorso){
        if(percorso==NULL)
        return;
            else {
                    cout<<percorso->info<<" ";
                    return stampalista(percorso->next);
                    }
    }
    
    // procedure liste, creazione ed inserimento
    void creaNodo(char info1, nodoPasso& temp){
        temp=new Tpnodo;
        temp->info=info1;
        temp->next=NULL;
    }
    
    void inserisciNodoCoda(char info1, nodoPasso& percorso){
        nodoPasso prec, curr;
        if (percorso=NULL)
            creaNodo(info1, percorso);
            else
                    curr=percorso;
                    prec=NULL;
                    while(curr!=NULL){
                    prec=curr;
                    curr=curr->next;
                    creaNodo(info1, prec->next);
                    
                    }
    }

    Allora il problema è che non viene creata la lista.
    Ora la function principale fà un controllo sulla matrice, e in base al risultato inserisce la lettera A, o la lettera B nella lista.

    la mia struct

    codice:
    struct Tpnodo{
        char info;
        Tpnodo *next;
    };
    
    typedef Tpnodo* nodoPasso;
    
    nodoPasso percorso;

    qualcuno sa aiutarmi o almeno dirmi perchè la lista non viene creata???
    grazie.
    Tutorial Photoshop
    Webmaster o Web Designer ? Vieni su Online Tutorial
    Tutorial Wordpress

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Hai provato ad inizializzare il puntatore ... ?

    nodoPasso percorso = NULL;
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    fatto, niente da fare
    Tutorial Photoshop
    Webmaster o Web Designer ? Vieni su Online Tutorial
    Tutorial Wordpress

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    30
    se fai

    nodoPasso percorso;

    inizializzi un puntatore che non punta nulla...quindi o lo passi a creanodo o fai:

    nodoPasso percorso=new Tpnodo;

  5. #5

    Re: [c++] problemi con liste

    Originariamente inviato da wgd-developer

    Ora la function principale fà un controllo sulla matrice, e in base al risultato inserisce la lettera A, o la lettera B nella lista.
    Posta anche la funzione principale ;-)

  6. #6

    Re: [c++] problemi con liste

    codice:
    void inserisciNodoCoda(char info1, nodoPasso& percorso){
        nodoPasso prec, curr;
        if (percorso=NULL)
            creaNodo(info1, percorso);
            else
                    curr=percorso;
                    prec=NULL;
                    while(curr!=NULL){
                    prec=curr;
                    curr=curr->next;
                    creaNodo(info1, prec->next);
                    
                    }
    }

  7. #7
    -primo consiglio usare la libreria list della stl dove è gia implementato l'oggetto list!
    -secondo se non lo vuoi usare se devi sempre fare inserimenti in coda mantieniti un puntatore all'ultimo elemento....

    secondo me l'errore e nell'if in quanto fai un assegnamento ( = ) non un confronto ( == ) ...




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.