33,321
社区成员




bool est(NODE *a,NODE *&b){
bool i=false;
while(b&&(a->dat>=b->dat)){
if(a->dat==b->dat)i=true;
b=b->next;
}
return i;
}
bool del_com(NODE *pa,NODE *pb,NODE *pc){//删除成功返回1,否则返回0
int c=pa->dat,t;//c is used to count the number of elements in the list
NODE *p=NULL,*ha=pa,*pre=pa;//pre用于记下A表当前元素位置,以维护链表
pa=pa->next;
pb=pb->next;
pc=pc->next;//skip the head node
while(pa){
if(est(pa,pb)&&est(pa,pc)){//delete
t=pa->dat;
while(pa&&(pa->dat==t)){
p=pa;
pa=pa->next;
free(p);
}
pre->next=pa;//重连、结束表
}
else pa=pa->next;//判断下一个
pre=pa;//更新A表当前元素位置
}
ha->dat=c;
if(p)return true;//即未删除元素
return false;
}
bool del_com(NODE *pa,NODE *pb,NODE *pc){//删除成功返回1,否则返回0
int c=pa->dat,t;//c is used to count the number of elements in the list
NODE *p=NULL,*ha=pa,*pre=pa;//pre用于记下A表当前元素位置,以维护链表
pa=pa->next;
pb=pb->next;
pc=pc->next;//skip the head node
while(pa){
if(est(pa,pb)&&est(pa,pc)){//delete
t=pa->dat;
while(pa&&(pa->dat==t)){
p=pa;
pa=pa->next;
free(p);
}
pre->next=pa;//重连、结束表
}
else{
pa=pa->next;//判断下一个
pre=pa;//更新A表当前元素位置
}
}
ha->dat=c;
if(p)return true;//即未删除元素
return false;
}