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

    [C] Errore su eliminazione da strutture dati lineari (liste)

    Salve a tutti ,riscontro molte difficolte con le strutture lineari semplici(liste),in particolare devo eliminare un elemento in posizione data. La cosa strana è che me lo elimina ma quando la stampo al posto dell'elemento mi sostituisce '0'??!??Come sempre ringrazio in anticipo.

    FILE.H
    codice:
    struct elemSCL{
        int elemento;
        struct elemSCL* next;
    };
    typedef struct elemSCL nodoSetSCL;
    typedef nodoSetSCL* setSCL;
    setSCL void_setdel(const int ele, setSCL set);

    FILE.C


    codice:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include "es1.h"
    setSCL void_setdel(const int ele, setSCL set){
        setSCL nuova=NULL;
        setSCL paux=set;
        while(set->next!=NULL){
            if(set->elemento==ele){
                setSCL temp=set;
                set=set->next;
                free(temp);
                temp=NULL;
                nuova=paux;
                return nuova;
            }
            set=set->next;
        }
        nuova=paux;
        return nuova;
    }
    FILE MAIN.C

    codice:
    #include<stdio.h>
    #include<stdlib.h>
    #include<string.h>
    #include "es1.h"
    int main(){
        int ele=4;
        setSCL lis=NULL;
        setSCL ris=NULL;
        int num_elemlis;
        int cont=0;
        printf("inserisci il numero di elementi che vuoi per la prima lista: ");   
        scanf("%d",&num_elemlis);                                          
        while(cont<num_elemlis){
            int elem;
            printf("inserisci il numero %d: ",cont);
            scanf("%d",&elem);
            setSCL paux;
            paux=(nodoSetSCL*)malloc(sizeof(nodoSetSCL));     
            paux->elemento=elem;
            paux->next=lis;
            lis=paux;
            cont++;
        }
        ris=void_setdel(ele,lis);
        while(ris!=NULL){
            printf("%d ",ris->elemento);
            ris=ris->next;
        }
        return 0;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Dai un'occhiata a questo documento

    https://www.cs.bu.edu/teaching/c/linked-list/delete/

    e studia l'implementazione iterativa
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Dai un'occhiata a questo documento

    https://www.cs.bu.edu/teaching/c/linked-list/delete/

    e studia l'implementazione iterativa

    Grazie mille come sempre Oregon!!!un ultima cosa, qualche altre documento sulle liste che mi puoi linkare!!!purtroppo il mio prof le spiega malissimo e lo dovuto capire da amici che l'hanno fatte in java!!!naturalmente oltre al corso C di html.itGrazie ancora

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.