C語言 鍊錶求一組資料的交集並集

2021-07-25 13:21:45 字數 974 閱讀 6696

#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...