本帖最后由 jhq999 于 2023-3-8 22:54 编辑 /*11 13 25 27 29 30 36 42 50 0
3 9 10 11 13 30 42 0
3 6 7 9 11 13 42 50 0*/
void TriLinkList(LinkList A, LinkList B, LinkList C) {
LinkList p1 ,p2,p3 ,prior = A;
int sign = 0;
for(p1 = A->next;p1!=NULL ;){/////////////////////////p1->data=11
for(p2 = B->next ;p2 != NULL ;p2= p2->next){
if(p2->data==p1->data){//查找B中是否有该元素
for(p3 = C->next ; p3!=NULL ;p3 =p3->next){//查找C中是否有该元素
if(p3->data==p1->data){
prior->next = p1->next;//删除节点操作////////// prior->next->data=13
free(p1);
p1=prior -> next;///////////////p1->data=13
sign = 1;//表示已删除一个节点/////////
break;
}
}
}
if(sign==1){
sign = 0;//////////
break;
}
}
if (sign == 0) {
prior=prior -> next;//查找下一个节点////////prior->data=13
p1=prior -> next;///////p1->data=25。这里跳过了13
}
}
}
void TriLinkList(LinkList A, LinkList B, LinkList C) {
LinkList p1 ,p2,p3 ,prior = A;
int sign = 0;
for(p1 = A->next;p1!=NULL ;){
for(p2 = B->next ;p2 != NULL ;p2= p2->next){
if(p2->data==p1->data){//查找B中是否有该元素
for(p3 = C->next ; p3!=NULL ;p3 =p3->next){//查找C中是否有该元素
if(p3->data==p1->data){
prior->next = p1->next;//删除节点操作
free(p1);
p1=prior -> next;
sign = 1;//表示已删除一个节点
break;
}
}
}
if(sign==1){
//////// sign = 0;///////////////////////这里删除
break;
}
}
if (sign == 0) {
prior=prior -> next;//查找下一个节点
p1=prior -> next;
}
}
}
|