Advertisement
Guest User

Untitled

a guest
Jul 20th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.22 KB | None | 0 0
  1. template <typename T>
  2. void DoubleLinkedList<T>::Extract( int index )//deletes a node from the list
  3. {
  4.     Node<T> * travel = m_head;
  5.     Node<T> * trail = travel;
  6.  
  7.     if( travel == 0 )
  8.         throw "Empty List\n";
  9.     else
  10.     {
  11.         if( travel->GetNext() == 0 )//If there is only 1 node in list
  12.         {
  13.             m_head = travel->GetNext();//sets m_head to null
  14.             m_tail = travel->GetNext();//sets m_tail to null
  15.            
  16.             delete travel;             //deletes the only node
  17.         }
  18.         else//if there is more than 1 node in the list
  19.         {
  20.             while( travel->GetData() != index && travel->GetNext() != 0 )//searches through until it finds the node
  21.             {
  22.                 trail = travel;
  23.                 travel = travel->GetNext();
  24.             }
  25.             if( travel->GetData() != index )//if not in the list display so
  26.             {
  27.                 cout << "Not in List\n";
  28.             }
  29.             else if( travel == m_head )//if the node is the head
  30.             {
  31.                 trail = m_head;
  32.                 m_head = m_head->GetNext();
  33.                 if( m_head != 0 )
  34.                     m_head->SetPrevious(0);
  35.                 delete trail;
  36.             }
  37.             else//if the node is found and is not the head
  38.             {
  39.                 if( travel->GetNext() != 0 )
  40.                 {
  41.                     travel->GetNext()->SetPrevious(trail);
  42.                 }
  43.                 else
  44.                     m_tail = trail;
  45.                 trail->SetNext( travel->GetNext() );
  46.                 delete travel;
  47.             }
  48.         }
  49.     }
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement