Linked List is one of the most common data structures available. In C++ we already have List in STL but in this program we will implement out own link list class using friend class.
#include <iostream> using namespace std; class Node { friend class List; int val; Node *link; public: Node() { val = 0; link = NULL; } Node(int v) { val = v; link = NULL; } Node(int v, Node *p) { val = v; link = p; } }; class List { int size; Node *head; public: List() { head = new Node(); size = 0; } void append(int); void show() const; inline int len() { return size; } }; void List::append(int item) { Node *pivot = new Node(item); if (size == 0) { head->link = pivot; } else { Node *temp = head; while (temp->link != NULL) { temp = temp->link; } temp->link = pivot; } size++; } void List::show() const { Node *tmp = head->link; cout << "["; while (tmp != NULL) { cout << tmp->val << "," << ends; tmp = tmp->link; } cout << "\b\b]" << endl; } int main() { List a; a.append(1); a.append(2); a.append(3); a.append(4); a.show(); a.append(5); a.append(6); a.append(7); a.show(); cout << "Length Of The List: "<< a.len() << endl; return 0; }
[1, 2, 3, 4] [1, 2, 3, 4, 5, 6, 7] Length Of The List: 7 -------------------------------- Process exited after 0.3124 seconds with return value 0 Press any key to continue . . .