C/C++

naru
SinglyLinkedList.cpp

//Singly LinkedList #include <cstdlib> #include <iostream> using namespace std; class SinglyNode { public: int data; SinglyNode *next; SinglyNode(int d, SinglyNode *ptr = 0) { data = d; next = ptr; } }; class SinglyLinkedList { public: SinglyNode *head, *tail; SinglyLinkedList() { head = tail = 0; } ~SinglyLinkedList() { for(SinglyNode *p; !isEmpty();) { p = head->next; delete head; head = p; } } int isEmpty() { return head == 0; } void addToBack(int data) { if (tail != 0) { tail->next = new SinglyNode(data); tail = tail->next; } else head = tail = new SinglyNode(data); } void addToFront(int data) { /* to be implemented... */ } int removeFromBack() { /* to be implemented... */ return -1; } int removeFromFront() { /* to be implemented... */ return -1; } bool isSubset(SinglyLinkedList& otherlist) { /* to be implemented... */ return false; } int size() { SinglyNode *p = head; int counter=0; while (p != 0) { p = p->next; counter++; } return counter; } void print() { SinglyNode *p = head; while (p != 0) { cout << p->data << " ---> " ; p = p->next; } cout << "/\n\n" ; } }; int main() { SinglyLinkedList list; list.addToBack(100); list.addToBack(5); list.addToBack(20); list.addToBack(33); list.print(); return 0; }