Monday, December 9, 2013

Insert Node at given position in Singly Linked List

//insert at eneterd position
bool single_linked_list::insert_at_pos(int input_pos , int element)
{
    node* temp_node = first_node;
    node* prev_node;
    bool status = true;
    if(input_pos == 1)
    {
        insert_at_first(element);
    }
    else if(input_pos == no_of_elements() +1 )
    {
        insert_at_end(element);
    }
    else if( input_pos > 1 && input_pos <= no_of_elements())
    {
      node* new_node = new node();
      new_node->data = element;
      for(int i = 0 ; i< input_pos-1 ; i++)
      {
        prev_node = temp_node;
        temp_node = temp_node->link; 
      }
      new_node->link = temp_node;
      prev_node->link = new_node;
    }
    else
    {
        printf(" Invalid position \n");
        status = false;
    }
    return status;
}



No comments: