Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 32
  1. #1
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642

    [C]LIsta di interi e scambio posto

    Ciao a tutti, io ho una lista di interi e con una procedura devo scambiare l'elemento che occupa l'ultimo posto con il primo!

    Questo che ho appena scritto è il testo dell'esercizio .
    Chi mi aiuta?


    http://www.oilproject.org/ -->La Scuola On-LIne degli smanettoni!

  2. #2
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    uppino?
    http://www.oilproject.org/ -->La Scuola On-LIne degli smanettoni!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    117
    typedef struct nodo *lista;
    struct nodo {
    int val;
    lista next;
    }

    lista scambia(lista l)
    {
    lista p = l;
    int aus;
    while (p->next != NULL)
    p = p->next;
    aus = l->val;;
    l->val = p->val;
    p->val = aus;
    return l;
    }

    La funzione ritorna un tipo lista.
    La chiamata della funzione deve essere:

    L = scambia(L);

    quindi L va sia come parametro che come variabile a cui assegnare il valore di ritorno!

  4. #4
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    ma io non devo scambiare....devo portare in cima alla lista l'ultimo nodo e l'"ex" primo nodo non so dove metterlo (il testo dell'esercizio non lo specifica).

    Avevo pensato di:
    1-salvare in un puntatore l'indirizzo del 1 elem della lista
    2-scorrere la lista finchè nn ho trovato il penultimo elemento
    3-salvare in un puntatore l'ultimo elemento
    4-far puntare a NULL il penultimo elemento
    5-mettere l'ultimo elemento nel primo

    ho pensato bene?
    http://www.oilproject.org/ -->La Scuola On-LIne degli smanettoni!

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    117
    mi fai vedere la traccia?

    ma mettere l'ultimo elemento nel primo intendi cambiare il puntatore di testa della lista (esatto!) o mettere il valore nel primo (sbagliato xkè si modifica anke il contenuto del puntatore d'appoggio per la testa).

    se fai vedere il testo dell'esercizio forse posso aiutarti meglio...

  6. #6
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    ecco, adesso te lo scrivo:

    Definire una procedura LastFirst che, data una semplice lista di interi, porta in prima posizione l'ultimo elemento.


    Ti ho descritto il testo dell'esercizio.
    Ma.....allora devo solo cambiare l'informazione oppure che altro?
    http://www.oilproject.org/ -->La Scuola On-LIne degli smanettoni!

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,319
    Io credo che l'esercizio voglia questo:
    codice:
    Lista attuale: 1 --> 2 --> 3 --> 4
    
    Lista elaborata: 4 --> 1 --> 2 --> 3
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    anche io credo che voglia proprio quello....ma come faccio?
    devo usare 2 puntatori?
    http://www.oilproject.org/ -->La Scuola On-LIne degli smanettoni!

  9. #9
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,319
    Dipende dal tipo di lista che hai.
    Se hai una semplice Linked-List, è sufficiente che tu imposti a null il puntatore next del penultimo elemento, che imposti il puntatore next dell'ultimo in modo che vada a puntare al primo elemento e che imposti il puntatore al primo elemento in modo che punti all'ultimo.

    Se hai una Double-Linked-List le cose si complicano un pochino, ma non di molto.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  10. #10
    Utente di HTML.it L'avatar di Trusty
    Registrato dal
    Dec 2004
    Messaggi
    642
    io ho una normale lista di interi.....!

    adesso vi faccio vedere il codice:

    void lastfirst(Listaint p){
    int *punt;
    int *punt1;
    punt=(p->inf); //puntatore al primo elemento della lista
    punt1=NULL; //puntatore all'ultimo elemento
    while (p->next->next!=NULL){
    p=p->next;
    punt1=&(p->next->inf); // punt1 = ultimo elemento
    p->next=NULL; //il penultimo elemento punta a NULL

    }
    }

    e poi mi manca un pezzo......
    http://www.oilproject.org/ -->La Scuola On-LIne degli smanettoni!

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.