PDA

Visualizza la versione completa : Programmazione c trasformare Lista concatenta in circolare


cisoman
20-12-2003, 15:47
dovrei risolvere queto problema:
devo modificare le funzioni di una lista concatenata in modo che la lista diventi circolare(in particolare che il successivo dell' ultimo elemento e' il primo). In particolare devo scrivere una function che scriva il contenuto della lista a partire da un elemento arbitrario.scrivetimi anche mail se volete vedere anche la lista da modificare
La lista da modificare si trova in questo sito...
http://www-dft.ts.infn.it/%7Epastore/DIDA/info/appunti/linklist.c
...non so da dove partitere,qualcuno pu aiutarmi?

JamesD
20-12-2003, 21:53
Richiedi la posizione, che sia minore o uguale al numero di elementi della lista. Crei un ciclo che la scorra fino alla posizione richiesta per esempio:


for(i=0;i<posizione;i++) p=p->successivo;


dopodich ti fai il ciclo che la visualizza per intera a partire dalla posizione in cui sei che itera n volte dove n il numero di elementi della lista.

infinitejustice
21-12-2003, 00:19
cisoman ti avevo gia risposto...
Per fare la lista circolare cerca l'ultimo elemento con un ciclo for
for(current = first; current->next != NULL; current = current->next);
All'uscita del ciclo current (se la lista nn vuota) punta all'ultimo elemento. A quel punto fai semplicemente current->next = first e la lista circolare

*current e *first sono due puntatori a struct, first al primo elemento ovviamente.

Per stamparli ti ha gia risp james

cisoman
22-12-2003, 00:44
Il fatto che io non so nemmeno come si fa.sono molto ignorante lo so.mi chiedevo se qualcuno poteva mandarmi la lista gi modificata via mail o anche qui con una piccola spiegazione di cio che si fatto cosi da riuscir a capire qualcosa...

cisoman
22-12-2003, 01:06
IL link giusto questo

http://www-dft.ts.infn.it/%7Epastore/DIDA/info/appunti/linklist.c

infinitejustice
22-12-2003, 04:26
Se ti mandiamo la lista gia modificata prob capisci ancora meno :quipy:

E visto che il link universitario presumo che tu debba passare qualche esame, quindi sarebbe meglio se 'ci sfruttassi' per capire i concetti che ancora nn hai capito, qualunque essi siano se no piu vai avanti...

cisoman
22-12-2003, 16:19
Hai ragione...ma in tre mesi di lavoro non possibile imparare a programmare c e dare un'esame su un'argomento che non c' sul libro...per questo cerco piu' informazioni possibili da tutti...ti ringrazio per l'aiuto

Loading