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

    [C] Lista bidirezionale

    ciao ragazzi .... chi mi scrive il codice per creare una lista bidirezionale? (non la dichiarazione della struttura)

  2. #2
    ragazzi per favore mi serve per l'esame che avrò il 21 ...... sul mio libro non c'è niente relativo alle liste bidirezionali...


    vi posto la dichiarazione della struttura cosi magari capite meglio ...



    codice:
    struct lista {
           int value;
           struct lista *next;
           struct lista *prev;
    };

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma c'e' su internet ... dai .. un po' di impegno ... hai scritto la struttura ... inizia a scrivere il codice ...

    Cerca le "double linked list" ... http://24bytes.com/Double-linked-List.html

  4. #4
    grazie mille ... ho provato a cercare con google ... ma scrivendo "lista bidirezionale" non viene un cavolo!!!


    proprio quello che mi serviva, se ho perplessità stai sicuro che posterò qui :P:P

  5. #5
    Utente di HTML.it L'avatar di Lak3d
    Registrato dal
    Aug 2006
    Messaggi
    1,031
    quella però è in C++

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì, ma e' facilmente convertibile in C puro ...

    E comunque, leggerei anche

    http://www.mema.ucl.ac.be/~wu/FSA2716-2002/cexe.html

    anche se circolare ... con poche modifiche ...

  7. #7
    uffa ... non riesco a capire!! come si crea una lista bidirezionale in C ?? dal C++ non lo so adattare ...........

    questo crea una lista monodirezionale, per renderla BIdirezionale basta fare qualche modifica o non ci azzecca proprio ??

    codice:
    struct lista *creaLista() {
           struct lista *p, *aux;
           int i, n;
           
           printf("\nDa quanti lista e' composta la lista? ");
           scanf("%d", &n);
           
           if (n==0) p = NULL;
           else {
                p = (struct lista *)malloc(sizeof(struct lista));
                printf("\nInserisci la 1a informazione: ");
                scanf("%d", &p->inf);
                aux = p;
                
                for(i=2; i<=n; i++) {
                         aux->next = (struct lista *)malloc(sizeof(struct lista));
                         aux = aux->next;
                         printf("Inserisci la %da informazione: ", i);
                         scanf("%d", &aux->inf);
                }
                aux->next = NULL;
                }
           return(p);
    }

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Se vuoi fare qualcosa in modo un po' più "pulito", fai così:

    Usa strutture di questo tipo:
    codice:
    typedef struct lnklist_item
    {
        int value;
        struct lnklist_item *prev;
        struct lnklist_item *next;
    } LNKLIST_ITEM;
    
    typedef struct
    {
        LNKLIST_ITEM *head;
        LNKLIST_ITEM *tail;
    } LNKLIST;
    Poi inizia a pensare la realizzazione di almeno 3 ipotetiche funzioni:

    codice:
    int LinkedList_Init (LNKLIST *lnklist)
    
    int LinkedList_Append (LNKLIST *lnklist, int value)
    
    int LinkedList_Free (LNKLIST *lnklist)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    accidenti .. per la struttura non basta aggiungere il campo *prev ... ci vuole tail e head?! ma a che serve?


    comunque mi sa che lascio perdere mi sembra troppo complicato.......andrò al prossimo appello sperando che capiti un esercizio più facile

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.