/* Remove the first node, which has the min priority, from the heap param: heap pointer to the heap pre: heap is not empty post: the first node is removed from the heap */ void removeMinHeap(DynArr *heap) { /* FIXME */ assert(heap->size != 0); int max = sizeDynArr(heap); //last element of array putDynArr(heap, 0, getDynArr(heap, (max - 1))); //set array index 0 to last element removeDynArr(heap, (max - 1)); //remove last element of array _adjustHeap(heap, max, 0); //adjust heap from root to last }
void dyArrayDictionaryRemove (struct dynArr *da, KEYTYPE key) { int i; struct association * ap; for(i = 0; i < da->size; i++){ if(strcmp(key, da->data[i]->key)){ //Assuming dynArr has struct association called 'data' ap = da->data[i]; removeDynArr(da, i); free(ap); } } }
// 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; }
void removeFromBag(struct bag* b, TYPE val) { removeDynArr(b->dynArr, val); }
int main(int argc, char* argv[]){ DynArr *dyn; dyn = createDynArr(2); double a,b,c,d,e,f,g,h; a = 3; b = 4; c = 10; d = 6; e = 5; f = 20; printf("\n\nTesting addDynArr...\n"); addDynArr(dyn, a); addDynArr(dyn, b); addDynArr(dyn, c); addDynArr(dyn, d); addDynArr(dyn, e); printf("The array's content: [3,4,10,6,5]\n"); assertTrue(EQ(getDynArr(dyn, 0), a), "Test 1st element == 3"); assertTrue(EQ(getDynArr(dyn, 1), b), "Test 2nd element == 4"); assertTrue(EQ(getDynArr(dyn, 2), c), "Test 3rd element == 10"); assertTrue(EQ(getDynArr(dyn, 3), d), "Test 4th element == 5"); assertTrue(EQ(getDynArr(dyn, 4), e), "Test 5th element == 6"); assertTrue(sizeDynArr(dyn) == 5, "Test size = 5"); printf("\n\nTesting add...\nCalling addDynArr(dyn)\n"); add(dyn); printf("The array's content: [3,4,7,6,5]\n"); assertTrue(EQ(getDynArr(dyn, 3), (double)11), "Test 3rd element == 11"); assertTrue(sizeDynArr(dyn) == 4, "Test size = 4"); //removing result of add test and restoring array removeDynArr(dyn, 3); addDynArr(dyn, d); addDynArr(dyn, e); printf("\n\nTesting sub..."); subtract(dyn); printf("The array's content: [3,4,7,6,5]\n"); assertTrue(EQ(getDynArr(dyn, 3), (double)1), "Test 3rd element == 1"); assertTrue(sizeDynArr(dyn) == 4, "Test size = 4"); //printf("%d \n", sizeDynArr(dyn)); printf("Top: %f \n", topDynArr(dyn)); //removing result of add test and restoring array popDynArr(dyn); printf("Top: %f \n", topDynArr(dyn)); pushDynArr(dyn, f); pushDynArr(dyn, e); printf("Top: %f \n", topDynArr(dyn)); printf("\n\nTesting divide..."); divide(dyn); //printf("The array's content: [3,4,10,20,5]\n"); //assertTrue(EQ(getDynArr(dyn, 3),(double)4), "Test 3rd element == 4"); //assertTrue(sizeDynArr(dyn) == 4, "Test size = 4"); /* printf("At 4: %f \n", topDynArr(dyn)); removeDynArr(dyn,4); printf("At 3: %f \n", topDynArr(dyn)); removeDynArr(dyn,3); printf("At 2: %f \n", topDynArr(dyn)); removeDynArr(dyn,2); printf("At 1: %f \n", topDynArr(dyn)); printf("%d \n",sizeDynArr(dyn)); */ //removing result of add test and restoring array printf("\nTop: %f \n", topDynArr(dyn)); popDynArr(dyn); printf("Top: %f \n", topDynArr(dyn)); pushDynArr(dyn, f); pushDynArr(dyn, e); printf("Top: %f \n", topDynArr(dyn)); printf("\n\nTesting multiply...\nCalling addDynArr(dyn)\n"); multiply(dyn); //printf("The array's content: [3,4,10,6,5]\n"); //assertTrue(EQ(getDynArr(dyn, 3),(float)30), "Test 3rd element == 30"); //assertTrue(sizeDynArr(dyn) == (float)4, "Test size = 4"); printf("Before pop Top: %f \n", topDynArr(dyn)); //removing result of add test and restoring array popDynArr(dyn); printf("After pop Top: %f \n", topDynArr(dyn)); pushDynArr(dyn,(double) 2); pushDynArr(dyn,(double) 1); printf("After 2 push Top: %f \n", topDynArr(dyn)); printf("\n\nTesting power of...n"); powerOf(dyn); //printf("The array's content: [3,4,10,6,5]\n"); //assertTrue(EQ(getDynArr(dyn, 3),(float)2), "Test 3rd element == 2"); //assertTrue(sizeDynArr(dyn) == (float)4, "Test size = 4"); }