|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Nov 2006
Città: Salerno
Messaggi: 4256
|
[c] confrontaliste
questo esercizio mi ha spiazzato un pò..praticamente non saprei da dove cominciare
Codice:
typedef struct nodo *lista;
typedef struct nodo {
int val;
lista next;
}nodo;
/* Function: confrontaListe
* Usage: L = confrontaListe (L1, L2, &n)
* -----------------------------------------------
* Confronta uno ad uno gli elementi corrispondenti delle due liste L1 e L2, che devono
* avere uguale lunghezza, costruendo una nuova lista L che contiene gli elementi
* corrispondenti che risultano uguali. Se L1 e L2 hanno lunghezza diversa,
* restituisce NULL. Il parametro di output n conta il numero di elementi corrispondenti
* uguali
*/
Codice:
lista confrontaListe(lista L1, lista L2, int *n)
{
nodo *corrente1;
nodo *precedente1;
nodo *corrente2;
nodo *precedente2;
while (corrente1==NULL&&corrente2==NULL){
precedente1=corrente1;
precedente2=corrente2;
corrente1=corrente1->next;
corrente2=corrente2->next;
if (corrente1->val==corrente2->val){
//appendi nodo alla nuova lista
//incrementa n (non so come)
}}
}
la strada è giusta?help
__________________
NABBA Italia Federazione Nazionale di Body Building, Fitness, Cultura sportiva, Educazione alimentare |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Aug 2005
Messaggi: 168
|
La strada è giusta ma ci sono diverse imprecisioni, tra cui la condizione del while sbagliata, il fatto che non controlli il primo elemento della lista e che la lista non è inizializzata.
PS per incrementare n devi fare: *n++; |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:43.



















