1
두 개의 정렬 된 문자열 배열이 주어지면 결과 교차가되는 배열을 찾으십시오.두 개의 순차 목록을 교차하십시오.
현재이 알고리즘이 있지만 작동하지 않습니다.
참고 : 배열 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;
}
"하지만 아니에요 작동 "- 오류를 설명하십시오. –
"작동하지 않습니다. "라는 말은 알고리즘이 수행해야하는 작업을 수행하지 못했음을 의미합니다. – rafaame
리스트에 요소를 추가하기 직전에 매번'realloc '하기 때문에 처음'malloc'은 필요하지 않습니다. 단순히 NULL로 초기화 할 수 있습니다. – Blastfurnace