//Derek McQuay 647465151 CS 235 Fall 2012 midterm 1 #include "polyman.h" PolynomialListInterface * polyman::addLists() { node * node_ptr1 = l1.head; node * node_ptr2 = l2.head; polylist l3; stringstream exp; while(node_ptr1 != NULL) { if(node_ptr1->coefficient != 0) { exp << node_ptr1->coefficient; exp << " "; } exp << node_ptr1->variable; if(node_ptr1->exponent != 0) { exp << " ^ "; exp << node_ptr1->exponent; } l3.insert(exp.str()); exp.str(""); node_ptr1 = node_ptr1->next; } while(node_ptr2 != NULL) { if(node_ptr2->coefficient != 0) { exp << node_ptr2->coefficient; exp << " "; } exp << node_ptr2->variable; if(node_ptr2->exponent != 0) { exp << " ^ "; exp << node_ptr2->exponent; } l3.insert(exp.str()); exp.str(""); node_ptr2 = node_ptr2->next; } polylist * p = NULL; p = &l3; return p; } PolynomialListInterface * polyman::subtractLists() { node * node_ptr1 = l1.head; node * node_ptr2 = l2.head; polylist l3; stringstream exp; while(node_ptr1 != NULL) { if(node_ptr1->coefficient != 0) { exp << node_ptr1->coefficient; exp << " "; } exp << node_ptr1->variable; if(node_ptr1->exponent != 0) { exp << " ^ "; exp << node_ptr1->exponent; } l3.insert(exp.str()); exp.str(""); node_ptr1 = node_ptr1->next; } while(node_ptr2 != NULL) { if(node_ptr2->coefficient != 0) { node_ptr2->coefficient = node_ptr2->coefficient * -1; // will cause it to be subtracting exp << node_ptr2->coefficient; exp << " "; } exp << node_ptr2->variable; if(node_ptr2->exponent != 0) { exp << " ^ "; exp << node_ptr2->exponent; } l3.insert(exp.str()); exp.str(""); node_ptr2 = node_ptr2->next; } polylist * p = NULL; p = &l3; return p; } void polyman::fillListOne(string term) { l1.insert(term); } void polyman::fillListTwo(string term) { l2.insert(term); } void polyman::clearListOne() { l1.clear(); } void polyman::clearListTwo() { l2.clear(); } PolynomialListInterface * polyman::getListOne() { polylist * p = NULL; p = &l1; return p; } PolynomialListInterface * polyman::getListTwo() { polylist * p = NULL; p = &l2; return p; }