Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408

    Stampa lista non funziona

    Salve, ho un problema con la stampa di una lista.

    Ho questo codice per la struttura di una lista:
    codice:
    struct SNode{
    	int info;
    	struct SNode *link;
    
    
    };
    typedef struct SNode TNode;
    typedef TNode *TList;
    Queste invece sono le funzioni:
    codice:
    TNode *crea_nodo(int info);
    void distruggiNodo(TNode *n);
    TList crea_lista();
    TList distruggi_lista(TList n);
    void stampaLista(TList L);
    TList inserisciNodo(TList l, int info);
    
    
    int main(){
    	int i, num;
    
    
    	TList l=crea_lista();
    
    
    	for(i=0;i<3;i++){
    		printf("insrisci valor: ");
    		scanf("%d", &num);
    		inserisciNodo(l, num);
    	}
    	stampaLista(l);
    	distruggi_lista(l);
    
    
    
    
    	return 0;
    }
    
    
    TNode *crea_nodo(int info){
    	TNode *n;
    	n=(TNode *)malloc(sizeof(TNode)*1);
    	n->info = info;
    	n->link = NULL;
    	return n;
    }
    
    
    void distruggiNodo(TNode *n){
    	free(n);
    }
    
    
    TList crea_lista(){
    	return NULL;
    }
    
    
    TList distruggi_lista(TList l){
    	TNode *n;
    	TNode *m;
    	n=l;
    	while(n!=NULL){
    		m=n->link;
    		distruggiNodo(n);
    		n=m;
    	}
    	return NULL;
    
    
    }
    
    
    void stampaLista(TList L){
    	TNode *n;
    	n=L;
    	while(n!=NULL){
    		printf("%d ", n->info);
    		n=n->link;
    	}
    }
    
    
    TList inserisciNodo(TList l, int info){
    	TNode *p, *s, *n;
    	p=NULL;
    	s=l;
    	//F1 RICERCA POSIZIONE
    	while(s!=NULL && info>s->info){
    		p=s;
    		s=s->link;
    	}
    	//F2 ALLOCAZIONE
    	n=crea_nodo(info);
    
    
    	if(p==NULL){
    		n->link=l;
    		return n;
    	}else{
    		n->link = s;
    		p->link = n;
    		return l;
    	}
    }
    La lista risulta NULL anche dopo l'inserimento dei nodi. Come devo fare?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Non ho visto il codice ma, secondo te il problema è nella stampa (come hai indicato nel titolo) o nell'inserimento (come sembra dici nel testo)?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    La stampa non fa visualizzare nulla. Con una stampa di prova nel main ho notato che la lista risulta sempre NULL. Il codice però mi sembra giusto.

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Forse il problema sta nella riga

    inserisciNodo(l, num);

    che dovrebbe essere

    l=inserisciNodo(l, num);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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.