Here is what I have so far. The spec sheet the professor handed out was very strict. It only specifies what the member functions and classes will contain, no main() or program function info. I am having a hard time figuring out how to get the add member function to work. It receives a pointer to a node but how do I get the value passed to set in the data attribute? I assume it would be in the main() call of L1.add(int);
A little confused need help with this and I'm sure with a few more things, only have a few days left before the semester is over. THANKS!
Code:#include <iostream> #include <string> using namespace std; //******************CLASS NODE*****************// class node { private: int data; node *next; public: node(int); node *getNext(); void setNext(node *); void setData(int); int getData(); }; node::node(int value) { data = value; next = '\0'; } node * node::getNext() { return next; } void node::setNext(node *newNodePtr) { next = newNodePtr; } void node::setData(int value) { data = value; } int node::getData() { return data; } //***********END OF CLASS NODE*****************// //************CLASS LISTCONTROLLER*************// class listController { private: int count; node *head; node *tail; public: listController(); listController(const listController &); ~listController(); void add(node *); int getCount(); void printList(); node *deleteNode(int); int deleteAllSpecific(int); int deleteAll(); node *searchList(int); int isEmpty(); }; listController::listController() { count = 0; *head = '\0'; *tail = '\0'; } listController::listController(const listController &Copy) { } listController::~listController() { } void listController::add(node *newNodePtr) { class node *currNodePtr = NULL; newNodePtr = new node(); if(head == NULL)//no nodes { head = newNodePtr; tail = newNodePtr; } else { tail->setNext(newNodePtr); tail = newNodePtr; } } int listController::getCount() { return count; } void listController::printList() { class node *currNodePtr = NULL; currNodePtr = head; while(currNodePtr->getNext() != NULL) { cout<<currNodePtr->getData()<<endl; currNodePtr->setNext(currNodePtr); } } node * listController::deleteNode(int value) { class node *currNodePtr = NULL; class node *prevNodePtr = NULL; currNodePtr = head; prevNodePtr = head; //loop until value is found while(currNodePtr != NULL && currNodePtr->getData() != value) { prevNodePtr = currNodePtr; currNodePtr = currNodePtr->getNext(); } if(currNodePtr->getData() == value) { if(currNodePtr == head) //if value found is first node { head = currNodePtr->getNext(); } else if(currNodePtr == tail) //if value found is last node { tail = prevNodePtr; prevNodePtr->setNext(NULL); } else //if value found is somewhere in between { prevNodePtr->setNext(currNodePtr->getNext()); } count--; } return currNodePtr; } int listController::deleteAllSpecific(int value) { class node *currNodePtr = NULL; class node *prevNodePtr = NULL; class node *tempNodePtr = NULL; int nodesDeleted = 0; currNodePtr = head; prevNodePtr = head; //loop until null while(currNodePtr != NULL) { if(currNodePtr->getData() == value) { if(currNodePtr == head) //if value found is first node { head = currNodePtr->getNext(); prevNodePtr = currNodePtr->getNext(); } else if(currNodePtr == tail) //if value found is last node { tail = prevNodePtr; prevNodePtr->setNext(NULL); } else //if value found is somewhere in between { prevNodePtr->setNext(currNodePtr->getNext()); } nodesDeleted++; count--; tempNodePtr = currNodePtr; currNodePtr = currNodePtr->getNext(); delete(tempNodePtr); //free node memory } else //advance pointers { prevNodePtr = currNodePtr; currNodePtr = currNodePtr->getNext(); } } return nodesDeleted; } int listController::deleteAll() { class node *currNodePtr = NULL; class node *tempNodePtr = NULL; int nodesDeleted = 0; currNodePtr = head; while(currNodePtr != NULL) { tempNodePtr = currNodePtr; currNodePtr = currNodePtr->getNext(); head = currNodePtr; if(currNodePtr == NULL) { tail = head; } nodesDeleted++; count--; delete(tempNodePtr); } return nodesDeleted; } node * listController::searchList(int value) { class node *currNodePtr = NULL; currNodePtr = head; while(currNodePtr != NULL && currNodePtr->getData() != value) { currNodePtr = currNodePtr->getNext(); } return currNodePtr; } int listController::isEmpty() { int flag = 1; if(count > 0) { flag = 0; } return flag; } //*********END OF CLASS LISTCONTROLLER*********// //***********************MAIN******************// int main() { listController L1; system("PAUSE"); return(0); } //*****************END OF MAIN*****************//



LinkBack URL
About LinkBacks
. THANKS!



Thanks.
I didn't think it would work or at least the links would be messed up. Any thoughts? Thanks again.