Advertisement
MaksNew

Untitled

Feb 14th, 2021
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. template<typename T>
  2. class SinglyLinkedList
  3. {
  4.     public:
  5.         SinglyLinkedList();
  6.         SinglyLinkedList(const SinglyLinkedList& other);
  7.         ~SinglyLinkedList();
  8.         void push_back(T data);
  9.         void push_front(T data);
  10.         void pop_front();
  11.         void clear();
  12.         void build_empty(size_t sizeOfList);
  13.         void insert(T data, int index);
  14.         void removeAt(int index);
  15.         void pop_back();
  16.         int getSize(){ return size;}
  17.         T operator[] (const int index);
  18.     private:
  19.         template<typename T>
  20.         class Node
  21.         {
  22.         public:
  23.             Node *pNext;
  24.             T data;
  25.             Node(T data = T(), Node *pNext = nullptr)
  26.             {
  27.                 this->data = data;
  28.                 this->pNext = pNext;
  29.             }
  30.         };
  31.         Node<T> *head;
  32.         size_t size;
  33. };
  34.  
  35. template<typename T>
  36. SinglyLinkedList<T>::SinglyLinkedList(const SinglyLinkedList &other)
  37. {
  38.     this->size = other.size;
  39.     this->head = other.head;
  40.     Node<T>* current = this->head;
  41.     while (current->pNext != nullptr)
  42.     {
  43.         Node<T>* newcar = new Node<T>;
  44.         newcar->data = other->data;
  45.         newcar->pNext = other->pNext;
  46.         current = current->pNext;
  47.     }
  48. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement