C program to insert an element at the beginning of singly linklist.

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();
     }

 

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s