Friday, 18 August 2017

Delete a node after specified number of nodes



//-------------------
Delete a node after specified number of nodes ----------------------
void Employee::del_at_speci( )
{
       int n;
       cout << "\nWhich Node Do You Want to Delete? ";
              cin >> n;
       int s_n = 0;
       EmployeeNode* T = NULL, *prev = NULL;   
       current = first;
       while(s_n != n)
       {
              prev = T;
              T = current;
              s_n++;
              current = current->next;
       }
       if(T == first)
       {
              first = current;
              cout << " Deleting " << T->name << endl;
              delete T;
       }
       else
       {
              prev->next = current;
              cout << " Deleting " << T->name << endl;
              delete T;
       }
}

Delete a node from end



//-------------------------------
Delete a node from end----------------------------------
void Employee::del_at_end( )
{
       EmployeeNode* prev;
       do
       {
              prev = NULL;
              EmployeeNode *temp = first;
              while(temp->next != NULL)
              {
                     prev = temp;
                     temp = temp->next;
              }
              prev->next = NULL;
              cout << " Deleting " << temp->name << endl;
              delete temp;
       }
       while(prev != NULL);
}

Delete a node from start



//------------------------------
Delete a node from start---------------------------------
void Employee::del_at_start( )
{
       cout<<"\n";
       EmployeeNode* temp = first;       current = NULL;
       while(temp!=NULL)
       {
              current = temp;            temp = temp->next;
              cout << " Deleting " << current->name << endl;         delete current;
       }
}