#include
#include
typedef struct nodelist;
int ischeck(list *des, int tmp)
return 0;
}list *unilist(list *src1, list *src2)
else
}src1 = src1->next;
}link->next = null; //連線src1和src2後,斷開連線,避免後續呼叫出現錯誤
return des;
}list *seclist(list *src1, list *src2) //求交集
else
}src1 = src1->next;
}return des;
}int main()
;int b[6] = ;
list *tmp1 = a;
list *tmp2 = b;
for (i = 0;i < 6;i++) //為鍊錶a賦值 陣列為7個元素,此處寫6
tmp1->data = a[i];
tmp1->next = null;
for (i = 0;i < 5;i++) //為鍊錶b賦值,陣列為6個元素,此處寫5,比元素個數少1
tmp2->data = b[i];
tmp2->next = null;
printf("a ,b的並集:\n");
list *c1 = unilist(a, b);
while (c1 != null)
printf("\n\n\na ,b的交集:\n");
list *c2 = seclist(a, b);
while (c2 != null)
printf("\n");
system("pause");
return 0;
}
c語言求鍊錶A和鍊錶B的並集 10
之前我考慮到,如果用這種測試用例 a 1 2 3 4 5 6 b 1 3 8 9 如果對比2和3發現小於,則將2插入進去,此時會和後面的3衝突。其實我這種考慮是多餘的,它不像交集,我們在每次比較的時候,如果a比b的小的話,就會把a指標往後移動一位,接著比較3和3.哎,其實我感覺我的每乙個測試用例都不...
C語言 K個一組翻轉鍊錶
給出乙個鍊錶,每 k 個節點一組進行翻轉,並返回翻轉後的鍊錶。k 是乙個正整數,它的值小於或等於鍊錶的長度。如果節點總數不是 k 的整數倍,那麼將最後剩餘節點保持原有順序。示例 給定這個鍊錶 1 2 3 4 5 當 k 2 時,應當返回 2 1 4 3 5 當 k 3 時,應當返回 3 2 1 4 ...
雜湊 4 求兩個鍊錶的交集以及並集
目錄 1.簡單方法 2.使用歸併排序 3.使用雜湊 給定兩個鍊錶,求它們的交集 intersection 以及並集 union 用於輸出的list中的元素順序可不予考慮。例子 輸入下面兩個鍊錶 list1 10 15 4 20 list2 8 4 2 10 輸出鍊錶 交集list 4 10 並集li...