WHAT'S NEW?
Loading...

Complete Single Linked List Program.












PROGRAM-

#include<stdio.h>
#include<conio.h>
#include<alloc.h>
#include<stdlib.h>
#define NODE struct Node
struct Node
{
    int data;
    struct Node *next;
};

void main()
{
    int ch,opt,opt1,opt2,item,count=0,i,loc,len,leng,ln,j;
    NODE *start,*p,*q,*r,*t1,*t2,*t3,*t4,*t5;
    start=(NODE *)malloc(sizeof(NODE));
    q=start;
    lbl1: clrscr();
    lbl2: printf("\n\n**********************************************************\n");
    printf("*  Enter your Choice from the following options          *\n");
    printf("*  1 Creation of NODES in Link List                      *\n");
    printf("*  2 Insertion of NODE in Link List                      *\n");
    printf("*  3 Deletion of NODE in Link List                       *\n");
    printf("*  4 Updation of NODE(S) in Link List                    *\n");
    printf("*  5 Searching of item in Link List                      *\n");
    printf("*  6 Reversal of NODES in Link List                      *\n");
    printf("*  7 Creation of NODES in two Link List                  *\n");
    printf("*  8 Merging of Two Link Lists                           *\n");
    printf("*  9 swapping of NODES in two Link Lists                 *\n");
    printf("*  10 Traversal of NODES in Link List                    *\n");
    printf("*  11 Total Node Count                                   *\n");
    printf("*  12 Exit                                               *\n");
    printf("**********************************************************\n");
    scanf("%d",&ch);
    if(ch==1)
    {        //1 Creation of NODES in Link List
        while(1)
        {
            printf("Do you want to create a node ---press 1 for creation");
            scanf("%d",&opt);
            if(opt!=1)
            {
                printf("\n   Thanks!!!!\n");
                break;
            }
            p=(NODE *)malloc(sizeof(NODE));
            printf("\n\nEnter the data for the New NODE:=");
            scanf("%d",&p->data);
            q->next=p;
            q=p;
            count++;
        }
        if(count>0)
            p->next=NULL;
        else
            start->next=NULL;
    goto lbl2;
    }
    else if(ch==2)
    {
        //2 Insertion of NODE in Link List
        lbl6: printf("**********************************************************\n");
        printf("*           Enter your choice                            *\n");
        printf("*     1 for Insert at First location                     *\n");
        printf("*     2 for Insert at Last location                      *\n");
        printf("*     3 for Insert at Any specific location              *\n");
        printf("**********************************************************\n");
        scanf("%d",&opt1);
        if(opt1==1)
        {
                //1 for insert at First location
                t1=start;
                t2=(NODE *)malloc(sizeof(NODE));
                printf("Enter Data in the New Node");
                scanf("%d",&t2->data);
                t2->next=t1->next;
                t1->next=t2;
                printf("\nData Inserted Successfully at first in the Link List\n\n");
                goto lbl2;

        }
        else if(opt1==2)
        {
                //2 for insert at last location
                t1=start;
                while(t1->next!=NULL)
                {
                    t1=t1->next;
                }
                t2=(NODE *)malloc(sizeof(NODE));
                printf("Enter Data in the Last Node");
                scanf("%d",&t2->data);
                t2->next=NULL;
                t1->next=t2;
                printf("\nData Inserted Successfully at last in the Link List\n\n");
                goto lbl2;
        }
        else if(opt1==3)
        {
                //3 for insert at any specific location
                lbl3: len=0;
                t1=start;
                while(t1->next!=NULL)
                {  len++;
                    t1=t1->next;
                }
                printf("Total Node Count=%d\n",len);
                printf("Enter location to insert a New Node");
                scanf("%d",&loc);

                if(loc>len+2)
                {
                    printf("Overflow Wrong location entry");
                    printf("Do you want to enter location again---enter 1 for re enter location");
                    scanf("%d",&opt2);
                    if(opt2==1)
                        goto lbl3;
                    else
                        goto lbl2;
                }
                t2=(NODE *)malloc(sizeof(NODE));
                printf("Enter Data in the New Node");
                scanf("%d",&t2->data);
                t1=start;
                for(i=1;i<loc;i++)
                    t1=t1->next;
                t2->next=t1->next;
                t1->next=t2;
                printf("\nData Inserted Successfully at specific location in the Link List\n\n");
                goto lbl2;

        }
        else
        {
            printf("\nWrong Entry Please Try again\n\n");
            goto lbl6;
        }

    }
    else if(ch==3)
    {
            //3 Deletion of NODE in Link List
          lbl5:    printf("**********************************************************\n");
            printf("*           Enter your choice                            *\n");
            printf("*     1 for Deletion of First Item                       *\n");
            printf("*     2 for Deletion of last Item                        *\n");
            printf("*     3 for Deletion of item of any specific location    *\n");
            printf("**********************************************************\n");
            scanf("%d",&opt1);
            if(opt1==1)
            {
                    //1 for Deletion of First Item
                    t1=start;
                    t2=t1->next;
                    t1->next=t2->next;
                    printf("\nData Deleted successfully at first in the Link List\n\n");
                    goto lbl2;
            }
            else if(opt1==2)
            {
                    //2 for Deletion of last Item
                    t1=start;
                    while((t1->next)->next!=NULL)
                    {
                        t1=t1->next;
                    }
                    t1->next=NULL;
                    printf("\nData Deleted successfully at last in the Link List\n\n");
                    goto lbl2;
            }
            else if(opt1==3)
            {
                    //3 for Deletion of item of any specific location
                    lbl4: len=0;
                    t1=start;
                    while(t1->next!=NULL)
                    {
                          len++;
                          t1=t1->next;
                    }
                    printf("Total Node Count=%d\n",len);
                    printf("Enter location to Delete an existing Node");
                    scanf("%d",&loc);
                    if(loc>len)
                    {
                        printf("Overflow Wrong location entry");
                        printf("Do you want to enter location again---enter 1 for re enter location");
                        scanf("%d",&opt2);
                        if(opt2==1)
                            goto lbl4;
                        else
                            goto lbl2;
                    }
                    t1=start;
                    t2=start->next;
                    for(i=1;i<loc;i++)
                    {
                        t1=t1->next;
                        t2=t2->next;
                    }
                    t1->next=t2->next;
                    printf("\nData Deleted successfully at specific location in the Link List\n\n");
                    goto lbl2;

            }
            else
            {
                printf("\nWrong Entry Please Try again\n\n");
                goto lbl5;
            }

    }
    else if(ch==4)
    {
        //4 Updation of NODE(S) in Link List
            lbl7:    printf("**********************************************************\n");
            printf("*           Enter your choice                            *\n");
            printf("*     1 for updating First Item                          *\n");
            printf("*     2 for updating Last Item                           *\n");
            printf("*     3 for updating Item of any specific Location       *\n");
            printf("*     4 for updating all Item                            *\n");
            printf("**********************************************************\n");
            scanf("%d",&opt1);
            if(opt1==1)
            {
                    //1 for updating First Item
                    t1=start;
                    t2=t1->next;
                    printf("Enter data for Updation of First Node");
                    scanf("%d",&t2->data);
                    printf("\nData updation successful at first in the Link List\n\n");
                    goto lbl2;
            }
            else if(opt1==2)
            {
                    //2 for updating Last Item
                    t1=start;
                    while(t1->next!=NULL)
                    {
                        t1=t1->next;
                    }
                    printf("Enter data for Updation of Last Node");
                    scanf("%d",&t1->data);
                    printf("\nData  Updation successful at last in the Link List\n\n");
                    goto lbl2;
            }
            else if(opt1==3)
            {
                    //3 for updating Item of any specific Location
                    lbl8: len=0;
                    t1=start;
                    while(t1->next!=NULL)
                    {
                          len++;
                          t1=t1->next;
                    }
                    printf("Total Node Count=%d\n",len);
                    printf("Enter location to Delete an existing Node");
                    scanf("%d",&loc);
                    if(loc>len)
                    {
                        printf("Overflow Wrong location entry");
                        printf("Do you want to enter location again---enter 1 for re enter location");
                        scanf("%d",&opt2);
                        if(opt2==1)
                            goto lbl8;
                        else
                            goto lbl2;
                    }
                    t1=start;
                    for(i=1;i<=loc;i++)
                        t1=t1->next;
                    printf("Enter data for Updation of given Node");
                    scanf("%d",&t1->data);
                    printf("\nData  Updation successful at specific location in the Link List\n\n");
                    goto lbl2;

            }
            else if(opt1==4)
            {
                //4 for updating all Item
                t1=start->next;
                ln=1;
                while(t1!=NULL)
                {
                        printf("Enter data for Updation of Node [%d]",ln);
                        scanf("%d",&t1->data);
                        t1=t1->next;
                        ln++;
                }
                printf("\nData  Updation successful at specific location in the Link List\n\n");
                goto lbl2;
            }
            else
            {
                printf("\nWrong Entry Please Try again\n\n");
                goto lbl7;
            }


    }
    else if(ch==5)
    {
        //5 Searching of item in Link List
        t1=start->next;
        j=1;
        printf("Enter Search Item");
        scanf("%d",&item);
        while(t1!=NULL)
        {
              if(item==t1->data)
              {
                    printf("\n\nSearch successful for the item %d at %d location\n\n",item,j);
                    goto lbl2;
              }
                t1=t1->next;
                j++;
        }
        printf("Search UnSuccessful---Item not Found");
        goto lbl2;
    }
    else if(ch==6)
    {
        //6 Reversal of NODES in Link List
    }
    else if(ch==7)
    {
        //7 swapping of NODES in two Link List
    }
    else if(ch==8)
    {
        //8 Merging of Two Link Lists
    }
    else if(ch==9)
    {
        //9 swapping of NODES in two Link Lists
    }
    else if(ch==10)
    {
        //10 Traversal of NODES in Link List
        r=start->next;
        printf("\n\n The Link list contains the following items\n\n");
        while(r!=NULL)
        {
            printf("[%d]\t\t",r->data);
            r=r->next;
        }
        goto lbl2;
    }
    else if(ch==11)
    {
                //Total Node Count
                leng=0;
                t1=start;
                while(t1->next!=NULL)
                {  leng++;
                    t1=t1->next;
                }
                printf("Total Node Count=%d\n",leng);
                goto lbl2;
    }
    else if(ch==12)
    {
        //EXIT
        exit(0);
    }
    else
    {
        //Wrong Entry
        printf("Wrong Entry Try Again!!!!");
        goto lbl1;
    }
}