Advertisement
Guest User

List.h

a guest
Jan 17th, 2019
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.14 KB | None | 0 0
  1. #pragma once
  2. #include <iostream>
  3. #include "Node.h"
  4.  
  5. using namespace std;
  6.  
  7. template <class T> class Node;
  8.  
  9. template <class T>class List {
  10. private:
  11.     Node<T> * First;
  12.  
  13. public:
  14.     List();
  15.     void print();
  16.     void add(T value);
  17.     void remove(T value);
  18.  
  19. };
  20.  
  21.  
  22. template <class T> List<T>::List() : First(nullptr) {}
  23.  
  24. template <class T> void List<T>::print() {
  25.     Node<T>* current = First;
  26.     while (current != nullptr) {
  27.         cout << current->value<< " ";
  28.         current = current->Next;
  29.     }
  30. }
  31.  
  32. template <class T> void List<T>::add(T value) {
  33.  
  34.     if (First == nullptr) First = new Node<T>(value, nullptr);
  35.     else
  36.     {
  37.         Node<T>* newNode = new Node<T>(value, nullptr);
  38.         newNode->Next = First;
  39.  
  40.         First = newNode;
  41.     }
  42. }
  43.  
  44. template <class T> void List<T>::remove(T val) {
  45.     Node<T>* previous = First;
  46.     Node<T>* current = First->Next;
  47.    
  48.     if (First->value == val) {
  49.         Node<T>* temp = First;
  50.         First = First->Next;
  51.         delete temp;
  52.     }
  53.  
  54.     while (current != nullptr) {
  55.         if (current->value == val) {
  56.             Node<T>* temp = current;
  57.             previous->Next = current->Next;
  58.             delete temp;
  59.  
  60.         }
  61.         previous = previous->Next;
  62.         current = current->Next;
  63.     }
  64.  
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement