}
struct cellabid *crealistabid()
{ struct cellabid *pre, *ult;
int i;
do
{ printf("Da quanti elementi %c composta la lista? \n ",138);
scanf("%d", &n);
}while (n<0);
if(n==0) pre = NULL;
else
{ pre = (struct cellabid *)malloc(sizeof(struct cellabid));
printf("Inserisci il 1%c elemento: ",166);
scanf(" %[^\n]", &pre->inform);
pre->prec= NULL;
ult = pre;
for(i=2; i<=n; i++)
{
ult->succ = (struct cellabid *)malloc(sizeof(struct cellabid));
ult->succ->prec=ult;
ult = ult->succ;
printf("\n Inserisci il %d%c elemento: ", i,166);
scanf(" %[^\n]", &ult->inform);
}
ult->succ = NULL;
}
return(pre);
}
void visualistabid(struct cellabid *pre)
{ printf("\n NULL <--- %s",pre->inform);
pre=pre->succ;
while(pre!=NULL)
{
printf(" <---> %s", pre->inform);
pre = pre->succ;
}
printf(" ---> NULL\n");
}
void visualistabidinv(struct cellabid *pre)
{ while(pre->succ!=NULL)
pre=pre->succ;
printf("\n NULL <--- %s ",pre->inform);
pre=pre->prec;
while(pre!=NULL)
{
printf(" <---> %s", pre->inform);
pre = pre->prec;
}
printf(" ---> NULL\n");
}
void stampalindroma(struct cellabid *pre)
{
int i,j,k;
struct cellabid * ult;
ult=pre;
for(k=1; ult!=NULL; ult=ult->succ, k++)
{
for(i=0;i<strlen(ult->inform)-1;i++);
for(j=0;j<=i/2 && ult->inform[j]==ult->inform[i-j];j++);
if(j>=i/2)
printf("\n La cella %d %c palindroma. \n ", k,138);
}
}