212k views
3 votes
Assign negativeCntr with the number of negative values in the linked list, including the list head.

code in c

#include

#include



typedef struct IntNode_struct {

int dataVal;

struct IntNode_struct* nextNodePtr;

} IntNode;



// Constructor

void IntNode_Create(IntNode* thisNode, int dataInit, IntNode* nextLoc) {

thisNode->dataVal = dataInit;

thisNode->nextNodePtr = nextLoc;

}



/* Insert newNode after node.

Before: thisNode -- next

After: thisNode -- newNode -- next

*/

void IntNode_InsertAfter(IntNode* thisNode, IntNode* newNode) {

IntNode* tmpNext = NULL;



tmpNext = thisNode->nextNodePtr; // Remember next

thisNode->nextNodePtr = newNode; // this -- new -- ?

newNode->nextNodePtr = tmpNext; // this -- new -- next

}



// Grab location pointed by nextNodePtr

IntNode* IntNode_GetNext(IntNode* thisNode) {

return thisNode->nextNodePtr;

}



int IntNode_GetDataVal(IntNode* thisNode) {

return thisNode->dataVal;

}



int main(void) {

IntNode* headObj = NULL; // Create intNode objects

IntNode* currObj = NULL;

IntNode* lastObj = NULL;

int i; // Loop index

int negativeCntr;



negativeCntr = 0;



headObj = (IntNode*)malloc(sizeof(IntNode)); // Front of nodes list

IntNode_Create(headObj, -1, NULL);

lastObj = headObj;



for (i = 0; i < 10; ++i) { // Append 10 rand nums

currObj = (IntNode*)malloc(sizeof(IntNode));

IntNode_Create(currObj, (rand() % 21) - 10, NULL);

IntNode_InsertAfter(lastObj, currObj); // Append curr

lastObj = currObj; // Curr is the new last item

}



currObj = headObj; // Print the list

while (currObj != NULL) {

printf("%d, ", IntNode_GetDataVal(currObj));

currObj = IntNode_GetNext(currObj);

}

printf("\\");



currObj = headObj; // Count number of negative numbers

while (currObj != NULL) {



/* Your solution goes here */



currObj = IntNode_GetNext(currObj);

}

printf("Number of negatives: %d\\", negativeCntr);



return 0;

}

User Rob Mayoff
by
7.8k points

1 Answer

2 votes

Answer:

FENERBAHÇE

Step-by-step explanation:

FENERBAHÇE FENERBAHÇE

User CHEEKATLAPRADEEP
by
7.6k points