Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente bannato
    Registrato dal
    Dec 2007
    Messaggi
    14

    [C] esercizio sulle liste

    il testo dell'esercizio è:
    Si consideri il seguente tipo:

    typedef struct lista {
    int val;
    struct lista *next;
    } testa, *testa;

    Scrivere una funzione testa insarray(testa p, int k, int v[], int n) che modifica la lista di interi L inserendo, immediatamente prima del k-esimo elemento di L, n nuovi elementi con valori dati dall'array A e ritorna la lista modificata. La numerazione degli elementi della lista inizia da zero, se la lista non ha il k-esimo elemento, i nuovi elementi sono aggiunti in coda. Ad esempio, se L è 10 -> 11-> 12 -> 13 e A = {1, 2} (quindi n = 2), ecco come è modificata la lista per diversi valori di k:

    k = 0 1 -> 2 -> 10 -> 11-> 12 -> 13
    k = 2 10 -> 11-> 1 -> 2 -> 12 -> 13
    k = 6 10 -> 11-> 12 -> 13 -> 1 -> 2

    io l'ho eseguito in questo modo:
    codice:
    testa insarray(testa p, int k, int v[], int n){
        int i=0,m=0;
        
        if(k==0){
            testa nuovalista;
            for(int j=0;j<n;j++){
                testa nuovo=(lista*) malloc(sizeof(lista));
                nuovo->val=v[i];
                nuovo->next=p;
                nuovalista=nuovo;
            }
            
            return nuovalista;
        } 
        else{
            testa t=p;
            while(t!=NULL){
                t=t->next; m++; 
            }
            
            if(k<m){
                
                while(i<k){ 
                    p=p->next; 
                    i++; 
                }
                
                testa temp=p->next;
                testa tail;
                
                for(int j=0;j<n;j++){
                    testa nuovo=(lista*) malloc(sizeof(lista));
                    nuovo->val=v[i];
                    nuovo->next=NULL;
                    tail=p;
                    
                    while(tail->next!=NULL) 
                        tail=tail->next;
                    tail->next=nuovo;
                }
                p->next=temp;
            } 
            else
                if(k>m){
                    for(int j=0;j<n;j++){
                        testa nuovo=(lista*) malloc(sizeof(lista));
                        nuovo->val=v[i];
                        nuovo->next=NULL;
                        
                        testa e=p;
                        while (e->next != NULL)
                            e = e->next;
                        e->next=nuovo;
                    }
                }
        }
            
          return p;  
    }
    purtroppo non ho con me il mio computer quindi non ho potuto compilare e verificare se il mio codice è giusto, quindi in caso avessi sbagliato qualcosa e/o il codice non fosse corretto, sapreste dirmi dove ho sbagliato?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Ma scusa ... ti hanno chiuso il thread precedente per dei motivi che tu replichi pari pari in quest'altra discussione ... lo hai visto?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    a volte ritornano...scusa hai il pc per scrivere e non puoi metterci su un gcc?
    RTFM Read That F*** Manual!!!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da valia
    a volte ritornano...scusa hai il pc per scrivere e non puoi metterci su un gcc?
    Ma anche scrivesse da un palmare, il concetto è che non gli è completamente passato per la mente che il moderatore gli abbia fatto delle osservazioni ...

    O è un robot o non sa leggere ... o anche peggio.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente bannato
    Registrato dal
    Dec 2007
    Messaggi
    14
    Originariamente inviato da oregon
    Ma anche scrivesse da un palmare, il concetto è che non gli è completamente passato per la mente che il moderatore gli abbia fatto delle osservazioni ...

    O è un robot o non sa leggere ... o anche peggio.
    vabè dai non piangere tranquillo

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da manuel_samele
    vabè dai non piangere tranquillo
    Perché dovrei ... ?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  7. #7
    Utente bannato
    Registrato dal
    Dec 2007
    Messaggi
    14
    lasciamo stare va

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da manuel_samele
    lasciamo stare va
    Ecco ... lascia stare ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Utente bannato
    Registrato dal
    Dec 2007
    Messaggi
    14
    si non c'è bisogno che me lo dici tu tranquillo johnny

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    Originariamente inviato da manuel_samele
    johnny
    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.