當前位置:編程學習大全網 - 源碼下載 - 已知兩個順序表A和B分別表示兩個集合,其元素遞增排列,編寫壹個函數求出A和B的交集

已知兩個順序表A和B分別表示兩個集合,其元素遞增排列,編寫壹個函數求出A和B的交集

由於問題與問題補充不壹致,問題是要求交集,是找A和B的相同元素,問題補充裏是求並集,強調不是歸並,我按並集寫的,如果是交集再稍加修改就可以了。

LinkList *LinkMag(LinkList *ha, LinkList *hb)//假設ha和hb是帶頭結點的鏈表

{

Link *p, *q, *r,*hc,*aa;

hc->head = (Link*)malloc(sizeof(Link));

p = ha->next;

q = hb->next;

r = hc;

while(p!=NULL && q!=NULL)

{ aa = (Link*)malloc(sizeof(Link));

if(p->data<q->data)//如果是交集的話,沒有傳遞數據,只有指針移動,即只執行p=p->next;就可以了

{ aa->data = p->data;

p = p->next;

}

else//如果是交集的話,還要判斷等於的情況,只有等於的情況,才有傳遞數據,而大於的情況與小於情況類似,只有指針移動。

{ aa->data = q->data;

q = q->next;

}

r->next = aa;

r = aa;

}

while(p!=NULL)

{ aa = (Link*)malloc(sizeof(Link));

aa->data = p->data;

p = p->next;

r->next = aa;

r = aa;

}

while(q!=NULL)

{ aa = (Link*)malloc(sizeof(Link));

aa->data = q->data;

q = q->next;

r->next = aa;

r = aa;

}

r->next=NULL;

return hc;

}

  • 上一篇:我是學機械設計與制造的專科生,2014年畢業,請問就業方面該有哪些註意的?還有我該如何找工作?
  • 下一篇:微擎微信公眾號授權登錄反復登錄跳轉修復
  • copyright 2024編程學習大全網