自己做网站如何挣钱,建设银行手机官方网站下载,市场推广怎么做,江苏建设教育网官网入口设A和B是两个单链表#xff08;带头节点#xff09;#xff0c;其中元素递增有序。设计一个算法从A到B的公共元素产的C表#xff08;交集#xff09;#xff0c;要求不破坏A#xff0c;B的节点。
思想#xff1a;依次比较A#xff0c;B表中的元素#xff0c;相同时带头节点其中元素递增有序。设计一个算法从A到B的公共元素产的C表交集要求不破坏AB的节点。
思想依次比较AB表中的元素相同时尾插法插入到表中。若不等将较小的指针后移知道其中一个链表遍历到表尾。
代码
LinkList Get_Come(LinkList A,LinkList B){LNode *pA-next,*qB-next;//p表示表A子表q表示表B子表 LinkList C (LinkList)malloc(sizeof(LNode));LNode *rC,*s;while(p!NULL q!NULL){//子表均有子表 if(p-dataq-data){//相同元素时利用尾巴插法插入到C表中 s(LNode*)malloc(sizeof(LNode));s-dataq-data;r-nexts;rs;//向后遍历 pp-next;qq-next;}else if(p-dataq-data){//A表中的数据更小时因表是递增有序所以将A表往后遍历 pp-next; }else{qq-next; //B表中的数据更小时因表是递增有序所以将B表往后遍历 }} r-nextNULL;//表C的表尾置空 return C;
}
时间复杂度Omn空间复杂度Omin(m,n