Q:

Why is a segmentation fault occuring in my code after the first time i insert an item in my code

 /*Linked list insertin deletion display

I have declared a global variable of struct node *head=NULL;
linkedlistlinkedlistlinkedlisr=tlinkedlistlinkedlistlinkedlist
linkedlistlinkedlistlinkedlisr=tlinkedlistlinkedlistlinkedlist
void insert(int x)//i guess the problem might be that temp is pointing to head as well as new  
{
    struct node *temp=NULL;
    struct node *new;

    new=(struct node*)malloc(sizeof(struct node));
    new->data=x;
    new->next=NULL;

    if(head==NULL)
    {
        head=new;
        temp=head;
    }
    else
    {
        temp->next=new;
        temp=new;
    }
}

A:

The code for the case of head==NULL is OK. But in the else case you need to insert the node correctly.
The code below will insert the node at the end of the list.
void insert(int x)
{
    struct node *temp=NULL;
    struct node *newnode;
    newnode= malloc(sizeof(struct node));
    newnode->data=x;
    newnode->next=NULL;
    if(head==NULL)
    {
        head=newnode;
    }
    else
    {
        temp = head;
        while (temp->next != NULL)
            temp = temp->next;
        temp->next=newnode;
    }
}

If you want to insert at the beginning of the list, then you need to modify the else condition as shown.
else
{
    newnode->next=head;
    head = newnode;
}

Also, the following pointers

Avoid use of new as it is a keyword in C++
Do not cast the result of malloc

