Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #include <iostream>
- #include "Node.h"
- using namespace std;
- template <class T> class Node;
- template <class T>class List {
- private:
- Node<T> * First;
- public:
- List();
- void print();
- void add(T value);
- void remove(T value);
- };
- template <class T> List<T>::List() : First(nullptr) {}
- template <class T> void List<T>::print() {
- Node<T>* current = First;
- while (current != nullptr) {
- cout << current->value<< " ";
- current = current->Next;
- }
- }
- template <class T> void List<T>::add(T value) {
- if (First == nullptr) First = new Node<T>(value, nullptr);
- else
- {
- Node<T>* newNode = new Node<T>(value, nullptr);
- newNode->Next = First;
- First = newNode;
- }
- }
- template <class T> void List<T>::remove(T val) {
- Node<T>* previous = First;
- Node<T>* current = First->Next;
- if (First->value == val) {
- Node<T>* temp = First;
- First = First->Next;
- delete temp;
- }
- while (current != nullptr) {
- if (current->value == val) {
- Node<T>* temp = current;
- previous->Next = current->Next;
- delete temp;
- }
- previous = previous->Next;
- current = current->Next;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement