文字列の 2 つの順序付けられた配列が与えられた場合、それらの交差の結果である配列を見つけます。
現在、このアルゴリズムを使用していますが、機能していません。
注: 配列 a と b には数値が文字列として含まれていると確信しているため、atol() は有効です。
char** matchLists(char **a, char **b, int sizeA, int sizeB, int *lSize)
{
char **list = malloc( sizeof(char *) );
int pA = 0, pB = 0, listSize = 0;
while(pA < sizeA && pB < sizeB)
{
if(atol(a[pA]) < atol(b[pB]))
{
pA++;
}
else if(atol(a[pA]) > atol(b[pB]))
{
pB++;
}
else
{
list = realloc(list, sizeof(char *) * (++listSize) );
list[listSize-1] = b[pB];
pA++;
pB++;
}
}
*lSize = listSize;
return list;
}