Salve, mi servirebbe un aiuto per un programma in C riguardante le liste. Chiede di scrivere il tipo '
elist' per gli elementi della lista ed il tipo '
plist' come riferimento ad un oggetto elist, infine di scrivere un codice (funzione) che conta quanti elementi di un
array siano presenti in una
lista concatenata di interi. Non va presa in considerazione più di un'occorrenza, visto che l'array è formato da elementi tutti diversi mentre la lista da elementi possibilmente duplicati. Di seguito trovate il codice (con le richieste esplicite nei commenti a mo' di consegna), ho provato a cercare delle soluzioni ma sono abbastanza limitato dal non poter usare altre librerie se non quella fornita dal professore. Compilando con il compilatore fornito dal sito del prof. i test sono tutti positivi tranne uno:
#include <stdio.h>
typedef struct elem {
int info;
struct elem* next;
} elist;
typedef elist* plist;
int compara_array_lista(int A[], int n, plist p){
int occ=0;
int cont=0;
int i;
plist s=&*p;
for(i=0; i<n; i++) {
while(p!=NULL) {
if(A[i]==p->info)
occ++;
p=p->next;
}
if(occ>=1)
cont++;
p=s;
}
return cont;
}
Grazie in anticipo