1. 程式人生 > >資料結構與演算法分析-C語言描述 3.4 交集

資料結構與演算法分析-C語言描述 3.4 交集

題目:給定兩個已排序的表L1和L2,只使用基本的表操作編寫計算L1∩L2的過程

/*
3.4 交集
思路:由於是已排序,遍歷L的同時,將L的資料和P的資料進行比較,
		如果相同則輸出,並因為是交集,不需要相同,所以P = P->next;
		如果不相同,則L = L->next,進行下一次比對;
*/
void Intersection(List L, List P) {
	while (L->next != NULL) {
		if (L->data == P->data) {
			printf("%d ", P->data);
			P = P->next;
		}
		L = L->next;
	}
	//當L到最後一個時,上面會停止比對,所以有下面。
	if (L->data == P->data) {
		printf("%d ", P->data);
	}
}

int main()
{
	List L,P;
	L = CreatedList();
	P = CreatedList();
	Intersection(L, P);
    return 0;
}