DS Module -II - SLL

 

SLL

#include<stdio.h>

#include<stdlib.h>

struct node

{

int info;

struct node *next;

};

struct node *start;

void insend(int ele);

void insbeg(int ele);

void insmiddle(int ele);

void delend();

void delbeg();

void delmiddle();

void traverse();

void main()

{

            int ele,choice;

            start=NULL;

while(1)

{

            clrscr();

            printf("\t\t list operations\n");

            printf("1.insbeg\n");

            printf("2.insend\n");

            printf("3.insmiddle\n");

            printf("4.delbeg\n");

            printf("5.delend\n");

            printf("6.traverse\n");

            printf("7.delmiddle\n");

            printf("8.exit\n");

            printf("enter choice\n");

            scanf("%d",&choice);

            switch(choice)

            {

            case 1:printf("\n enetr ele ");

                                    scanf("%d",&ele);

                                    insbeg(ele);

                                    break;

            case 2:printf("\n enetr ele ");

                        scanf("%d",&ele);

                        insend(ele);

                        break;

            case 3:printf("\n enetr ele ");

                        scanf("%d",&ele);

                        insmiddle(ele);

                        break;

            case 4:delbeg();

                        break;

            case 5:delend();

                        break;

            case 6:traverse();

                        break;

            case 7:delmiddle();

                        break;

            case 8:exit(0);

            }

}

}

void insbeg(int ele)

{

            struct node *temp;

            temp=(struct node*)malloc(sizeof(struct node));

            temp->info=ele;

            if(start==NULL)

            {

                        temp->next=NULL;

                        start=temp;

            }

            else if(start->next==NULL)

            {

                        temp->next=start;

                        start=temp;

            }

            else

            {

                        temp->next=start;

                        start=temp;

            }         

}

void insmiddle(int ele)

{

            struct node *temp,*p;int pos,count=0;

            if(start==NULL)

            {

                        temp=(struct node*)malloc(sizeof(struct node));

                        temp->info=ele;

                        temp->next=NULL;

                        start=temp;

            }

            else

            {

                        temp=(struct node*)malloc(sizeof(struct node));

                        temp->info=ele;

                        printf("\n enter position");

                        scanf("%d",&pos);

                        p=start;

                        while(p!=NULL)

                        {

                                    if(pos==count)

                                    break;

                                    count=count+1;

                                    p=p->next;

                        }

                        temp->next=p->next;

                        p->next=temp;

            }

}

void insend(int ele)

{

            struct node *temp,*p;

            temp=(struct node*)malloc(sizeof(struct node));

            temp->info=ele;

            temp->next=NULL;

            if(start==NULL)

            {

                        start=temp;

            }

            else if(start->next==NULL)

            {

                        start->next=temp;

            }

            else

            {

                        p=start;

                        while(p->next!=NULL)

                        {

                                    p=p->next;

                        }

                        p->next=temp;

            }

}

void delbeg()

{

            struct node *temp;

            if(start==NULL)

            printf("\n list is empty");

            else if(start->next==NULL)

            {

                        temp=start;

                        start=NULL;

                        free(temp);

            }

            else

            {

                        temp=start;

                        start=start->next;

                        free(temp);

            }

}

void delend()

{

            struct node *temp,*p;

            if(start==NULL)

            printf("\n list is empty");

            else if(start->next==NULL)

            {

                        temp=start;

                        start=NULL;

                        free(temp);

            }

            else

            {

                        p=start;

                        while(p->next->next!=NULL)

                        {

                                    p=p->next;

                        }

                        temp=p->next;

                        p->next=NULL;

                        free(temp);

            }

}

void traverse()

{

            struct node *p;

            if(start==NULL)

            printf("\n list is empty");

            else

            {

                        p=start;

                        while(p!=NULL)

                        {

                                    printf("\n elements are %d",p->info);

                                    p=p->next;

                        }

            }

            getch();

}

void delmiddle()

{

}

Comments

Popular posts from this blog

ML QP

Data Structures Module_V

Data Structures Module-IV