Buongiorno, devo scrivere il seguente codice completo in linguaggio c ma continua a darmi errore. Grazie mille in anticipo!
Si definisca la struttura c che rappresenta un elemento di una lista di int in forma
collegata con puntatori. Si definisca una funzione c che verifica se due liste di tale tipo
sono uguali (due liste sono uguali se contengono lo stesso numero di elementi, con gli
stessi valori e nello stesso ordine).
#include <stdio.h>
#include <stdlib.h>
typedef unsigned short int Boolean;
#define TRUE 1
#define FALSE 0
struct list1{
int value;
struct list1 *next_ptr;
};
struct list2{
int value;
struct list2 *next_ptr;
};
Boolean is_equal(struct list * ptr1, struct list * ptr2);
Boolean is_equal(struct list * ptr1, struct list * ptr2) {
Boolean mismatch_found=FALSE;
while(ptr1!=NULL && ptr2!=NULL && mismatch_found==FALSE) {
if(ptr1->value!=ptr2->value)
mismatch_found=TRUE;
else {
ptr1=ptr1->next_ptr;
ptr2=ptr2->next_ptr;
}
}
if(ptr1==NULL && ptr2==NULL && mismatch_found==FALSE)
return TRUE;
else
return FALSE;
}
int main(){
struct list1 *head_ptr1;
struct list2 *head_ptr2;
int run1=1;
int run2=1;
int i=0, j=0;
int list1[]={2,3,4,6};
int list2[]={2,3,4,6};
int l1,l2;
l1=sizeof(list1)/sizeof(int);
l2=sizeof(list2)/sizeof(int);
while (run1){
printf("La lista 1 è %d\n", list1);
i=i+1;
if(i==l1){
printf("Lista Terminata.\n");
break;
}
}
while (run2){
printf("La lista 2 è %d\n", list2[j]);
j=j+1;
if(j==l2){
printf("Lista Terminata.\n");
break;
}
}
is_equal(&head_ptr1,&head_ptr2);
return 0;
}