Реферат: Двунаправленный динамический список
(strcmp((*temp).fam,(*(*temp).next).fam)==0) &&
(strcmp((*temp).name,(*(*temp).next).name)>0) ||
(strcmp((*temp).fam,(*(*temp).next).fam)==0) &&
(strcmp((*temp).name,(*(*temp).next).name)==0) &&
(strcmp((*temp).fanem,(*(*temp).next).fanem)>0))
{
m=1;
if (temp==first) first=(*temp).next;
else (*(*temp).prev).next=(*temp).next;
if ((*temp).next==cut)
{
cut=temp;
tmp=NULL;
}
else
{
(*(*(*temp).next).next).prev=temp;
tmp=(*(*temp).next).next;
}
(*(*temp).next).next=temp;
(*(*temp).next).prev=(*temp).prev;
(*temp).prev=(*temp).next;
(*temp).next=tmp;
}
else temp=(*temp).next;
}
m=0;
temp=cut;
while((*temp).prev!=NULL)