Slip 5 - B) Write a ‘C’ program to create linked list with given number in which data part of each node contains individual digit of the number. (Ex. Suppose the number is 368 then the nodes of linked list should contain 3, 6, 8)

Solution:

#include<stdio.h>
#include<stdlib.h>
struct node
{
    int data;
    struct node * next;
};
struct node* head=NULL;

struct node *cn()
{
    struct node* n;
    n=(struct node *)malloc(sizeof(struct node));
    return(n);
}

void createnode()   //Function to create Linked list.
{
    int i=0,x,digits[100];
    struct node * temp,*newnode;
    printf("Enter any number :\n");
    scanf("%d",&x);
    while(x!=0)
    {
        digits[i]=x%10;
        x=x/10;
        i++;
    }
    i--;
    for(i;i>=0;i--)
    {
        if(head==NULL)  //checking in linked list is empty
        {
            head=cn();
            head->data=digits[i];
            head->next=NULL;
            temp=head;
        }
        else
        { 
            newnode=cn();
            newnode->data=digits[i];
            newnode->next=NULL;
            temp->next=newnode;
            temp=newnode;
        }
    }
}


void traverse()     //Function to traverse Linked list.
{
    struct node * temp;
    int cnt=0;
    temp=head;
    while(temp!=NULL)
    {
        printf("%d\n",temp->data);
        temp=temp->next;
        cnt++;
    }
    printf("Total number of node :%d",cnt);
}





int main()
{
    int choice,a=0;
    while(choice!=3)
    {
        printf("\n\n1. Create Linked list.\n");
        printf("2. Display Linked list.\n");
        printf("3. Exit\n\n");
        scanf("%d",&choice);
        printf("\n");
        switch(choice)
        {
            case 1: if(a==1)
                    {
                        printf("You have already created a Linked list.");
                    }
                    else
                    {   createnode();
                        a++;
                    }
                    break;

            case 2: traverse();
                    break;

            

            case 3: exit(0);

            defalut: printf("Enter a valid choice\n");
        }
    }
}

Post a Comment

0 Comments