int main(int argc, char* argv[]) { DynArr* b; int n, i; double t1, t2; for(n=1000; n < 200000; n=n*2) /* outer loop */ { b = createDynArr(n); for( i = 0 ; i < n; i++) { addDynArr(b, (TYPE)i); /*Add elements*/ } t1 = getMilliseconds();/*Time before contains()*/ for(i=0; i<n; i++) { containsDynArr(b, i); } t2 = getMilliseconds();/*Time after contains()*/ printf("Time for running contains() on %d elements: %g ms\n", n, t2-t1); /* delete DynArr */ deleteDynArr(b); } return 0; }
/* Removes the first occurrence of the specified value from the collection if it occurs param: v pointer to the dynamic array param: val the value to remove from the array pre: v is not null pre: v is not empty post: val has been removed post: size of the bag is reduced by 1 */ void removeDynArr(DynArr *v, TYPE val) { int i = 0; assert(v!=0); assert(!isEmptyDynArr(v)); assert(containsDynArr(v,val)); /* Design decision: Error if they try to remove something not in there! */ for(i = 0; i < sizeDynArr(v); i++) if(compare(v->data[i], val) == 0) { removeAtDynArr(v,i); break; } }
int main(int argc, char* argv[]) { DynArr* b; int n, i; double t1, t2; #ifdef MEMORY_TEST_INCLUDED /* variables to hold memory used before and after creating DynArr */ long m1, m2; /* memory used BEFORE creating DynArr */ m1 = getMemoryUsage(); #endif if( argc != 2 ) return 0; b = createDynArr(1000); n = atoi(argv[1]); /*number of elements to add*/ for( i = 0 ; i < n; i++) { addDynArr(b, (TYPE)i); /*Add elements*/ } #ifdef MEMORY_TEST_INCLUDED /* memory used AFTER creating DynArr */ m2 = getMemoryUsage(); printf("Memory used by DynArr: %ld KB \n", m2-m1); #endif t1 = getMilliseconds();/*Time before contains()*/ for(i=0; i<n; i++) { containsDynArr(b, i); } t2 = getMilliseconds();/*Time after contains()*/ printf("Time for running contains() on %d elements: %g ms\n", n, t2-t1); /* delete DynArr */ deleteDynArr(b); return 0; }
int main(int argc, char* argv[]) { #ifdef MEMORY_TEST_INCLUDED // Memory used BEFORE creating LinkedList long m1 = getMemoryUsage(); #endif if (argc != 2) { printf("Usage: %s <number of elements to add>\n", argv[0]); return 1; } DynArr *a = newDynArr(1024); int numElements = atoi(argv[1]); int i; for (i = 0 ; i < numElements; i++) { addDynArr(a, (TYPE)i); } #ifdef MEMORY_TEST_INCLUDED // Memory used AFTER creating LinkedList long m2 = getMemoryUsage(); printf("Memory used by Dynamic Array : %ld KB \n", m2 - m1); #endif double t1 = getMilliseconds(); // Time before contains() for (i = 0; i < numElements; i++) { containsDynArr(a, i); } double t2 = getMilliseconds(); // Time after contains() printf("Time for running contains() on %d elements: %g ms\n", numElements, t2 - t1); deleteDynArr(a); return 0; }
// this main function contains some int main(int argc, char* argv[]){ DynArr *dyn; dyn = createDynArr(2); printf("\n\nTesting addDynArr...\n"); addDynArr(dyn, 3); addDynArr(dyn, 4); addDynArr(dyn, 10); addDynArr(dyn, 5); addDynArr(dyn, 6); printf("The array's content: [3,4,10,5,6]\n"); assertTrue(EQ(getDynArr(dyn, 0), 3), "Test 1st element == 3"); assertTrue(EQ(getDynArr(dyn, 1), 4), "Test 2nd element == 4"); assertTrue(EQ(getDynArr(dyn, 2), 10), "Test 3rd element == 10"); assertTrue(EQ(getDynArr(dyn, 3), 5), "Test 4th element == 5"); assertTrue(EQ(getDynArr(dyn, 4), 6), "Test 5th element == 6"); assertTrue(sizeDynArr(dyn) == 5, "Test size = 5"); printf("\n\nTesting putDynArr...\nCalling putDynArr(dyn, 2, 7)\n"); putDynArr(dyn, 2, 7); printf("The array's content: [3,4,7,5,6]\n"); assertTrue(EQ(getDynArr(dyn, 2), 7), "Test 3rd element == 7"); assertTrue(sizeDynArr(dyn) == 5, "Test size = 5"); printf("\n\nTesting swapDynArr...\nCalling swapDynArr(dyn, 2, 4)\n"); swapDynArr(dyn, 2, 4); printf("The array's content: [3,4,6,5,7]\n"); assertTrue(EQ(getDynArr(dyn, 2), 6), "Test 3rd element == 6"); assertTrue(EQ(getDynArr(dyn, 4), 7), "Test 5th element == 7"); printf("\n\nTesting removeAtDynArr...\nCalling removeAtDynArr(dyn, 1)\n"); removeAtDynArr(dyn, 1); printf("The array's content: [3,6,5,7]\n"); assertTrue(EQ(getDynArr(dyn, 0), 3), "Test 1st element == 3"); assertTrue(EQ(getDynArr(dyn, 3), 7), "Test 4th element == 7"); assertTrue(sizeDynArr(dyn) == 4, "Test size = 4"); printf("\n\nTesting stack interface...\n"); printf("The stack's content: [3,6,5,7] <- top\n"); assertTrue(!isEmptyDynArr(dyn), "Testing isEmptyDynArr"); assertTrue(EQ(topDynArr(dyn), 7), "Test topDynArr == 7"); popDynArr(dyn); printf("Poping...\nThe stack's content: [3,6,5] <- top\n"); assertTrue(EQ(topDynArr(dyn), 5), "Test topDynArr == 5"); pushDynArr(dyn, 9); printf("Pushing 9...\nThe stack's content: [3,6,5,9] <- top\n"); assertTrue(EQ(topDynArr(dyn), 9), "Test topDynArr == 9"); printf("\n\nTesting bag interface...\n"); printf("The bag's content: [3,6,5,9]\n"); assertTrue(containsDynArr(dyn, 3), "Test containing 3"); assertTrue(containsDynArr(dyn, 6), "Test containing 6"); assertTrue(containsDynArr(dyn, 5), "Test containing 5"); assertTrue(containsDynArr(dyn, 9), "Test containing 9"); assertTrue(!containsDynArr(dyn, 7), "Test not containing 7"); removeDynArr(dyn, 3); printf("Removing 3...\nThe stack's content: [6,5,9]\n"); assertTrue(!containsDynArr(dyn, 3), "Test not containing 3"); printf("Executing test functions...\n"); printf("\nTesting addDynArr()\n"); addDynArr_TEST(dyn); //Testing the add functionality under 3 conditions printf("\nTesting popDynArr()\n"); popDynArr_TEST(dyn); //Testing the pop function under 2 conditions printf("\nTesting topDynArr()\n"); topDynArr_TEST(dyn); //Testing the top function under 2 conditions printf("\nTesting pushDynArr()\n"); pushDynArr_TEST(dyn); //Testing the push function under 3 conditions printf("\nTesting containsDynArr()\n"); containsDynArr_TEST(dyn); //Testing the contains function under 2 conditions printf("\nTesting removeDynArr()\n"); removeDynArr_TEST(dyn); //Testing the remove function under 2 conditions return 0; }
// this main function contains some int main(int argc, char* argv[]){ DynArr *dyn; dyn = newDynArr(2); int i; printf("\n\nTesting addDynArr...\n"); addDynArr(dyn, 3); addDynArr(dyn, 4); addDynArr(dyn, 10); addDynArr(dyn, 5); addDynArr(dyn, 6); printf("The array's content: [3,4,10,5,6]\n"); assertTrue(EQ(getDynArr(dyn, 0), 3), "Test 1st element == 3"); assertTrue(EQ(getDynArr(dyn, 1), 4), "Test 2nd element == 4"); assertTrue(EQ(getDynArr(dyn, 2), 10), "Test 3rd element == 10"); assertTrue(EQ(getDynArr(dyn, 3), 5), "Test 4th element == 5"); assertTrue(EQ(getDynArr(dyn, 4), 6), "Test 5th element == 6"); assertTrue(sizeDynArr(dyn) == 5, "Test size = 5"); printf("\n\nTesting putDynArr...\nCalling putDynArr(dyn, 2, 7)\n"); putDynArr(dyn, 2, 7); printf("The array's content: [3,4,7,5,6]\n"); assertTrue(EQ(getDynArr(dyn, 2), 7), "Test 3rd element == 7"); assertTrue(sizeDynArr(dyn) == 5, "Test size = 5"); printf("\n\nTesting swapDynArr...\nCalling swapDynArr(dyn, 2, 4)\n"); swapDynArr(dyn, 2, 4); printf("The array's content: [3,4,6,5,7]\n"); assertTrue(EQ(getDynArr(dyn, 2), 6), "Test 3rd element == 6"); assertTrue(EQ(getDynArr(dyn, 4), 7), "Test 5th element == 7"); printf("\n\nTesting removeAtDynArr...\nCalling removeAtDynArr(dyn, 1)\n"); removeAtDynArr(dyn, 1); printf("The array's content: [3,6,5,7]\n"); assertTrue(EQ(getDynArr(dyn, 0), 3), "Test 1st element == 3"); assertTrue(EQ(getDynArr(dyn, 3), 7), "Test 4th element == 7"); assertTrue(sizeDynArr(dyn) == 4, "Test size = 4"); printf("\n\nTesting stack interface...\n"); printf("The stack's content: [3,6,5,7] <- top\n"); assertTrue(!isEmptyDynArr(dyn), "Testing isEmptyDynArr"); assertTrue(EQ(topDynArr(dyn), 7), "Test topDynArr == 7"); popDynArr(dyn); printf("Poping...\nThe stack's content: [3,6,5] <- top\n"); assertTrue(EQ(topDynArr(dyn), 5), "Test topDynArr == 5"); pushDynArr(dyn, 9); printf("Pushing 9...\nThe stack's content: [3,6,5,9] <- top\n"); assertTrue(EQ(topDynArr(dyn), 9), "Test topDynArr == 9"); printf("\n\nTesting bag interface...\n"); printf("The bag's content: [3,6,5,9]\n"); assertTrue(containsDynArr(dyn, 3), "Test containing 3"); assertTrue(containsDynArr(dyn, 6), "Test containing 6"); assertTrue(containsDynArr(dyn, 5), "Test containing 5"); assertTrue(containsDynArr(dyn, 9), "Test containing 9"); assertTrue(!containsDynArr(dyn, 7), "Test not containing 7"); removeDynArr(dyn, 3); printf("Removing 3...\nThe stack's content: [6,5,9]\n"); assertTrue(!containsDynArr(dyn, 3), "Test not containing 3"); return 0; }
int containsBag(struct bag* b, TYPE val) { return(containsDynArr(b->dynArr, val)); }
void rmValDynArr(dynArr_p da, TYPE elem) { rmLocDynArr(da, containsDynArr(da, elem) - da->data); }