|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Apr 2007
Messaggi: 381
|
[C] Liste Circolari Aiuto Esercizio
Mi date qualche suggerimento su come fare uesto esercizio in un modo semplice?
Codice HTML:
Scrivere una funzione per fondere in unica lista circolare ordinata due liste circolari ordinate suggerimenti? |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Apr 2007
Messaggi: 51
|
Ciao, così al volo non ho del codice sottomano, ma di sicuro avevo fatto una raccolta delle funzioni base per manipolare le liste...
Se le due liste sono già ordinate puoi effettuare la fusione in tempo ottimo (omicron di n+m, con n ed m uguali al numero di oggetti nelle liste). A livello di algoritmo accedi con due puntatori ai primi elementi di ogni lista e poi li confronti e: 1) se elem lista A > elem lista B, allora inserisci elem B e avanzi il puntatore corrispondente di una posizione, poi ripeti il confronto fino a finelista 2) l'esatto contrario 3) se sono uguali, spetta a te la scelta (non inserisci nulla, inserisci un solo elem oppure entrambi) e poi avanzi entrambi i puntatori e passi a confrontare gli elem successivi NB: la procedura la puoi fare iterativa con do {...} while ( !finelista(A) && !finelista(B) ) come clausola di chiusura, poi, se è finita la lista B e la A non ancora allora dovrai semplicemente finire di copiare gli elem rimanenti (che sono già ordinati) o viceversa quelli di B se finisce prima A... Magari se trovo un po' di codice domani te lo posto. Ciao |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:53.



















