I have this prog....but it prints only the 1st no....I am unable to understand 
y?

// Link List.

# include<stdio.h>
# include<stdlib.h>

struct emp
{
        int eno;

        struct emp* next;
};
typedef struct emp node;

int main()
{
        node* create(node *ptr);
        void print(node *ptr);

        node *start;
        int ch;

        clrscr();

        start = NULL;
        while(ch != 3)
        {
                printf("\n 1. Create \n 2. Print: ");
                scanf("%d",&ch);

                switch(ch)
                {
                        case 1:
                                        start = create(start);
                                        break;
                        case 2:
                                        print(start);
                        case 3:
                                        exit(0);
                        default:
                                        printf("\n abc");
                }
        }
        return(0);
}

node* create(node *start)
{
        node *temp;
        int n=0;

        clrscr();

        start = temp = NULL;

        while(n!=1)
        {
                printf("\n Enter ENo: ");
                flushall();
                scanf("%d",&n);
                if(start == NULL)
                {
                        start = (node*)malloc(sizeof(node));
                        start->eno = n;
                        start->next = NULL;
                        temp = start;
                }
                else
                {
                        temp = (node*)malloc(sizeof(node));
                        temp->next->eno = n;
                        temp->next->next = NULL;
                        temp = temp->next;
                }
        }
        return(start);
}

void print(node *start)
{
        node *temp;

        clrscr();

        temp = start;

        while(temp != NULL)
        {
                printf("\n %d",temp->eno);
                temp = temp -> next;
        }
}

Reply via email to