Advertisement
Timtsa

Queue.cpp

Dec 11th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.77 KB | None | 0 0
  1.  
  2.  
  3. #include "stdafx.h"
  4. using namespace std;
  5.  
  6. //int main()
  7. //{
  8.    
  9.  
  10.     DataType Node::getData() const
  11.     {
  12.  
  13.         return data;
  14.     }
  15.     void Node::setData(const DataType& _data)
  16.     {
  17.         data = _data;
  18.     }
  19.     Node* Node::detpNext()
  20.     {
  21.         return pNext;
  22.     }
  23.     const Node* Node::detpNext() const
  24.     {
  25.         return pNext;
  26.     }
  27.     void Node::setpNext(Node* _pNext)
  28.     {
  29.         pNext = _pNext;
  30.  
  31.     }
  32.  
  33.     void printList(Node * pHead)
  34.     {
  35.         for (Node*pCurrent = pHead; pCurrent != nullptr; pCurrent = pCurrent->detpNext())
  36.         {
  37.             cout << pCurrent->getData() << endl;
  38.         }
  39.     }
  40.     void addListHead(const DataType &data, Node*& pHead)
  41.     {
  42.         Node* pNew = new Node;
  43.         pNew->setData(data);
  44.         pNew->setpNext(pHead);
  45.         pHead = pNew;
  46.     }
  47.     void addlist(const DataType & data, Node* pCurrent)
  48.     {
  49.         Node * pNew = new Node(data, pCurrent->detpNext());
  50.         pCurrent->setpNext(pNew);
  51.     }
  52.  
  53.     Node* findInList(const DataType& data, Node* start)
  54.     {
  55.         for (Node* pCurrent = start; pCurrent != nullptr; pCurrent = pCurrent->detpNext())
  56.  
  57.         {
  58.             if (pCurrent->getData() == data)
  59.                 return pCurrent;
  60.         }
  61.         return nullptr;
  62.     }
  63.     void delListHead(Node*& pHead)
  64.     {
  65.         Node*pDel = pHead;
  66.         pHead = pHead->detpNext();
  67.         delete pDel;
  68.     }
  69.  
  70.     void delListNode(Node* pRrew)
  71.     {
  72.         Node*pDel = pRrew->detpNext();
  73.         pRrew->setpNext(pDel->detpNext());
  74.         delete pDel;
  75.     }
  76.  
  77.     void Quene::enque (const DataType &data)
  78.     {
  79.         if (first == nullptr)
  80.         {
  81.             addListHead(data, first);
  82.             end = first;
  83.         }
  84.         else
  85.         {
  86.             addlist(data, end);
  87.             end = end->detpNext();
  88.         }
  89.     }
  90.     bool Quene::deque(DataType& value)
  91.     {
  92.         if ( this->first!=nullptr)
  93.         {
  94.             if (first =end)
  95.             {
  96.                 end = nullptr;
  97.             }
  98.             value = first->getData();
  99.             delListHead(first);
  100.             return true;
  101.         }
  102.         return false;
  103.     }
  104.     void Quene::show()
  105.     {
  106.         printList(first);
  107.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement