|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Jun 2014
Messaggi: 17
|
Problema funzione liste [c/c++]
Questa è la funzione che ha lo scopo di inserire un valore x in una lista ordinata in modo crescente
Codice:
void insertSorted(list& h, int x) {
/* inserisce ricorsivamente, in ordine crescente */
if (h == NULL) {
h = createNode(x);
return ; }
if ( h->dato > x ) {
h = insertHead(h, createNode(x));
return ; }
insertSorted(h->next),x); }
Mettiamo il caso che il valore x sia compreso tra il primo e il secondo nodo. Quindi inizialmente le condizione dei 2 if non vengono verificate e la funzione viene richiamata( e viene inviata la lista a partire dal secondo nodo quindi). A questo punto il valore x è minore di h->dato quindi viene creato il nuovo nodo e inserito prima del secondo nodo. Ora mi chiedo il primo nodo come fa a puntare al nodo creato? Vedendo questa funzione mi verrebbe da dire che il primo nodo e il nodo creato puntino entrambi al secondo nodo quando invece non dovrebbe essere cosi... Non so se mi sono spiegato. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:39.



















