jaynegandhi
BAN USER//int arr1[6] = {-1, 2, 3, 6, 8, 20};
//int arr2[8] = {0, 1, 2, 5, 7, 8, 11, 21};
int* Practice::unionOfList(int* arr1, int size1, int* arr2, int size2, int *result) {
int pointer1 = 0, pointer2 = 0;
while (pointer1 < size1 && pointer2 < size2) {
if (arr1[pointer1] < arr2[pointer2]) {
result[pointer1+pointer2] = arr1[pointer1];
pointer1++;
}
else {
result[pointer1+pointer2] = arr2[pointer2];
pointer2++;
}
}
if (pointer1 == size1 && pointer2 == size2) {
return result;
}
else if (pointer1 == size1) {
while (pointer2 < size2) {
result[pointer1+pointer2] = arr2[pointer2];
pointer2++;
}
}
else if (pointer2 == size2) {
while (pointer1 < size1) {
result[pointer1+pointer2] = arr1[pointer1];
pointer1++;
}
}
return result;
}
void Practice::setOfList(int* arr1, int size1, int* arr2, int size2, int *result) {
int p1=0, p2=0, rPointer = 0;
while (p1 < size1 && p2 < size2) {
if (arr1[p1] == arr2[p2]) {
result[rPointer] = arr1[p1];
rPointer++;
p1++; p2++;
while (arr1[p1] == result[rPointer-1])
p1++;
while (arr2[p2] == result[rPointer-1])
p2++;
}
else if (arr1[p1] < arr2[p2]) {
result[rPointer] = arr1[p1];
rPointer++;
p1++;
}
else {
result[rPointer] = arr2[p2];
rPointer++;
p2++;
}
}
if (p1 == size1 && p2 == size2) {
return;
}
else if (p1 == size1) {
while (p2 < size2) {
result[rPointer] = arr2[p2];
rPointer++;
p2++;
}
}
else {
while (p1 < size1) {
result[rPointer] = arr1[p1];
rPointer++;
p1++;
}
}
}
void Practice::intersectionOfList(int* arr1, int size1, int* arr2, int size2, int *result) {
int p1=0, p2=0, rPointer = 0;
while (p1 < size1 && p2 < size2) {
if (arr1[p1] == arr2[p2]) {
result[rPointer] = arr1[p1];
rPointer++;
p1++; p2++;
while (arr1[p1] == result[rPointer-1])
p1++;
while (arr2[p2] == result[rPointer-1])
p2++;
}
else if (arr1[p1] < arr2[p2]) {
p1++;
}
else {
p2++;
}
}
}
- jaynegandhi December 09, 2015