Following program will insert an element at the beginning of singly link list.
////////////////////////////////////////////////////////////////// /// -:Insert an element at the beginning of singly link list:- /// //////////////////////////////////////////////////////////// /***************************************************************** https://wbutassignmentshelp.wordpress.com *****************************************************************/ # include<stdio.h> # include<conio.h> # include<alloc.h> # include<stdlib.h> struct node { int data; struct node *link; }; void append(struct node **,int); void in_begin(struct node **,int); void display(struct node *); void main() { struct node *p; /* p = start ptr */ p=NULL; int num,loc,c; char choice; do { clrscr(); printf("PROGRAM TO CREATE SINGLY LINKED LIST AND DISPLAY IT "); printf("\n======================================================"); printf("\n\n1.Create \\ Appending The List"); printf("\n2.Insert Node At Begining"); printf("\n3.Displaying the list"); printf("\n4.Exit"); printf("\n\nEnter ur Choice : "); choice=getch(); switch(choice) { case '1': char ans; do { printf("How many times you want to enter : "); scanf("%d",&c); for(int i=0;i<c;i++) { printf("Enter any number : "); scanf("%d",&num); append(&p,num); } printf("Enter more (y/n) :"); fflush(stdin); ans=getchar(); }while(ans !='n'); break; case '3': display(p); getch(); break; case '2': printf("Enter The Data : "); scanf("%d",&num); in_begin(&p,num); break; case '4': clrscr(); gotoxy(1,10);printf("\n visit https://wbutassignmentshelp.wordpress.com for more program"); getch(); exit(0); break; default: printf("Invalid choice.Please Enter Correct Choice"); getch(); } }while(choice !=7); } void append(struct node **q,int num) { struct node *temp,*r; temp = *q; if(*q==NULL) { temp = (struct node *)malloc(sizeof(struct node)); temp->data=num; temp->link=NULL; *q=temp; } else { temp = *q; while(temp->link !=NULL) { temp=temp->link; } r = (struct node *)malloc(sizeof(struct node)); r->data=num; r->link=NULL; temp->link=r; } } void display(struct node *q) { if(q==NULL) { printf("\n\nEmpty Link List.Can't Display The Data"); getch(); goto last; } while(q!=NULL) { printf("\n%d",q->data); q=q->link; } last: } int count(struct node *q) { int c=0; if(q==NULL) { printf("Empty Link List.\n"); getch(); goto last; } while(q!=NULL) { c++; q=q->link; } last: return c; } void in_begin(struct node **q,int num) { struct node *temp; if(*q==NULL) { printf("Link List Is Empty.Can't Insert."); getch(); goto last; } else { temp=(struct node *)malloc(sizeof(struct node)); temp->data=num; temp->link=*q; *q=temp; /* pointing to the first node */ } last: getch(); }