Inserting data in a singly link list by specifying the nth node position. : So the logic goes like this:
Suppose the link list consists of (6,7,8) as data and I pass insert(1,5),so the list will be as (5,6,7,8).
Similarly on insert(3,2) link list is (6,7,2,8).
 
I tried compiling the below code but it gives me an error stating-Undefined reference to main by '-start'.I tried debugging,even searching for answers but found no help.Kindly suggest a solution.Any further suggestions and bug fixes shall be welcomed.
(I have used codepad for compiling) 




#include<iostream>
using namespace std;
class Link_no
{
    struct node
    {
        int data;
        node *next;
    };

    void insert(int n,int d,node *head)
    {
        node *temp=new node();
        temp->data=d;
        temp->next=NULL;
        node *temp1;

        if(n==1)
        {
            temp->next=head;
            head=temp;
            return;
        }
        else
            temp1=head;
        {
            for(int i=0;i<n-1;i++)
            {
                temp1=temp1->next;
            }
            temp->next=temp1;
            temp1=temp;
        }
    }
    void print(node *start)
    {
        node *temp=start;
        while(temp!=NULL)
        {
            cout<<temp->data<<endl;
            temp=temp->next;
        }
    }
     int main()
     {
        node *head=NULL;
        Link_no o1;
        o1.insert(1,5,head);
        o1.insert(2,7,head);
        o1.insert(1,9,head);
        o1.print(head);
        return 0;
     }
}
