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

    Implementazione Liste Linguaggio C

    Salve a tutti, sto frequentando il corso di fondamenti di informatica e abbiamo da poco introdotto le liste. Da quanto ho capito ci sono due modi per implementarle, tramite array o tramite puntatori. Nel secondo caso otterremmo una lista linkata, sfruttando la memoria dinamica.

    Ora avrei bisogno di un aiuto nel "decifrare" la rappresentazione in c di una generica lista. Le slide del professore non mostrano l'intero codice ma soltanto i blocchi relativi alla lista. I blocchi in questione sono questi:

    codice:
    typedef int E; 
    struct Record; 
    typedef Record *L;  
    
    struct Record{
               
               E elem;       
               L next; };
    codice:
    L push(L l, E e){                    
    
    L q;         
    
    q =(L)malloc(sizeof(Record));          
    q->elem=e;          
    q->next=l;                    
    return(q); 
    }
    codice:
    L insert(L l,E e) {
    L q=l, prec; int PosTrovata=0;
    if (q==NULL) { 
    q=push(l,e); 
    return(q);
    }
    if (e <= q->elem) { 
    q=push(l,e); 
    return(q);
    }
    
    prec=q;
    while ((q->next!=NULL) && (PosTrovata== 0)) {
    if (e > q->next->elem) { prec=q; q= q->next; }
    else PosTrovata=1;
    }
    prec->next=push(q->next,e);
    return(l);
    }
    Ora avrei alcune domande:

    1) Perche definisce un tipo di dato int E? E' comunque un tipo di dato intero che bisogno cè di definirlo?

    2)Perche definisce un tipo Record *L? Non dovrebbe scrivere: struct Record *next?

    3)Cosa rappresenta il parametro l? E la variabile q può essere considerato un puntatore temporaneo, giusto?

    4)Per inserire effettivamente i dati nella lista, cosa devo scrivere all'interno del main?

    Ringrazio tutti in anticipo.

  2. #2
    up

  3. #3
    up

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    andare a ricevimento e chiedere al prof no?

    spesso istruzioni come questa

    codice:
    typedef int E;
    sono fatte per generalizzare, per avere un nome unico (a volte più semplice) per quello che tu definisci.
    Se ci sono altre ragioni, il prof (o chi ha implementato il codice) sapranno darti altre info sulle scelte implementative.

    Alle altre boh??? dovrei sapere cosa aveva in testa chi ha scritto il codice e come il tuo prof ha commentato le slide (ergo sarai stato distratto a lezione)

    per quanto riguarda il main, hai il prototipo della funzione, prepara i dati in modo da poterla richiamare:
    es. chiede un intero, prepara un intero ecc ecc
    RTFM Read That F*** Manual!!!

  5. #5
    Cercare di rispondere alla domanda senza fare commenti non inerenti alla discussione
    andare a ricevimento e chiedere al prof no?
    o atteggiandosi a padre-eterno onnisciente
    ergo sarai stato distratto a lezione
    no?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    ringrazia che non ho detto quello che realmente avevo in testa (e sono stata educata).
    Le tue domande riguardano scelte implementative, non possiamo noi sapere cosa aveva in testa lo sviluppatore quando ha scritto quel codice: o ti rivolgi allo sviluppatore o cerchi di capire cosa significa andando a ricordare cosa significa sintatticamente nel linguaggio quella istruzione.

    Come impostare il main per richiamare le funzioni presumo sia nelle capacità di uno studente di fondamenti di informatica.

    Se poi non riesci a sopportare un po' di sarcasmo e qualche critica su un forum, non oso pensare come avresti reagito se a ricevimento il tuo prof ti avesse urlato contro (e io ti avrei urlato di sicuro contro al suo posto) per domande che chiaramente indicano che non hai capito molto di quello di cui si parla.
    RTFM Read That F*** Manual!!!

  7. #7
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472

    Moderazione

    Effettivamente non è questo il modo di condurre discussioni: il forum non si propone di rispondere puntualmente a domande che spieghino come funziona il codice di terzi, ma di dare una mano a coloro che scrivono il proprio codice, postandolo, e che si trovano in difficoltà con errori o comportamenti anomali.

    Invito quindi a rispettare questo tipo di contenuti nell'apertura di discussioni.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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