This is just a rough idea class for a LinkedList.
#ifndef LINKEDLISTSINGLE_H_INCLUDED #define LINKEDLISTSINGLE_H_INCLUDED /** class Defines a singly LinkedList Object */ class LinkedList { public: LinkedList(); LinkedList(int data); void addFirstNode(int data); void addNode(int data); int removeNode(int data); void printNodes(); int getNumberOfNodes(); ~LinkedList(); struct node { node* next; int value; }; node* head; node* current; }; /** Default Constructor */ LinkedList::LinkedList() { head = NULL; current = NULL; } /** Overload Constructor */ LinkedList::LinkedList(int data) { node *p = new node; p->value = data; p->next = NULL; head = p; current = p; } /** This Function is to be used when a default constructor is used */ void LinkedList::addFirstNode( int data ) { node *p = new node; p->value = data; p->next = NULL; head = p; current = p; } /** Add a node to the linked list, adds to the end of list */ void LinkedList::addNode(int data) { node *p = new node; p->value = data; p->next = NULL; current->next = p; current = p; } /** iterate list and remove first instance of node containing a value passed as arg */ int LinkedList::removeNode(int data) { node* iterator; iterator = head; node* previous; previous = head; while ( iterator->next != NULL) { if ( iterator->value == data ) { previous->next = iterator->next; delete(iterator); return 0; } previous = iterator; iterator = iterator->next; } return -1; } /** Iterate and print the linkedlist values */ void LinkedList::printNodes() { node* iterator; iterator = head; printf("\n--------\n"); while ( iterator->next != NULL) { printf("%i\n", iterator->value ); iterator = iterator->next; } printf("%i\n", iterator->value); printf("--------\n\n"); } /** Function to return the number of nodes in a LinkedList */ int LinkedList::getNumberOfNodes() { int i = 0; node* tmp = head; while ( tmp != NULL) { i++; tmp = tmp->next; } return i; } /** Deconstructor for LinkedList */ LinkedList::~LinkedList() { node* tmp = head; current = head; if ( current == NULL ) return; while ( current != NULL ) { current = current->next; delete tmp; tmp = current; } } #endif // LINKEDLISTSINGLE_H_INCLUDED
