Advertisement
Maligosus

base_queue.h

Nov 13th, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.96 KB | None | 0 0
  1. //base_queue.h
  2.  
  3. #ifndef _BASE_QUEUE_H_INCLUDED
  4. #define _BASE_QUEUE_H_INCLUDED
  5.  
  6.  
  7. template <class T>
  8. struct BaseQueue
  9. {
  10.     T Element;
  11.     BaseQueue* nextNode;
  12. };
  13.  
  14. template <class T>
  15. void InsertToQueue(BaseQueue<T>** pFirstElement, T pElement)
  16. {
  17.     BaseQueue<T>* currentElement = *pFirstElement;
  18.     BaseQueue<T>* previous = nullptr;
  19.     BaseQueue<T>* newNode = nullptr;
  20.     while (currentElement)
  21.     {
  22.         previous = currentElement;
  23.         currentElement = currentElement->nextNode;
  24.     }
  25.     newNode = new BaseQueue<T>;
  26.     newNode->Element = pElement;
  27.     if (previous)
  28.     {
  29.         newNode->nextNode = nullptr;
  30.         previous->nextNode = newNode;
  31.     }
  32.     else
  33.     {
  34.         *pFirstElement = newNode;
  35.         (*pFirstElement)->nextNode = nullptr;
  36.     }
  37. }
  38.  
  39. template<class T>
  40. void DeleteElementFromQueue(BaseQueue<T>** pFirstElelemt)
  41. {
  42.     BaseQueue<T>* oldItem = *pFirstElelemt;
  43.     if (*pFirstElelemt)
  44.     {
  45.         *pFirstElelemt = (*pFirstElelemt)->nextNode;
  46.         delete oldItem;
  47.         oldItem = nullptr;
  48.     }
  49. }
  50.  
  51.  
  52. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement