Subscribe Us

Responsive Advertisement

Advertisement

problem 25(circular link list insert delete)

 

problem 25(circular link list insert delete)



#include<stdio.h>

struct node

{

    int data;

    struct node *next;


};

struct node *last=NULL;

void insertatbegin(int val)

{

    struct node *temp;

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


    if(last==NULL)

    {

        temp->data=val;

        temp->next=temp;

        last=temp;

    }

    else

    {

        temp->data=val;

        temp->next=last->next;

        last->next=temp;


    }


}

void insertatend(int val)

{

    struct node *temp;

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

   if(last==NULL)

   {


       temp->data=val;

       temp->next=temp;

       last=temp;

   }

   else

   {

       temp->data=val;

       temp->next=last->next;

       last->next=temp;

       last=temp;


   }


}

void traverselist()

{

    struct node *temp;


    if(last==NULL)

    {

        printf("Empty\n");

    }

    else

    {

         temp=last->next;

        while(1)

    {

        printf("%d ",temp->data);

        temp=temp->next;

        if(temp==last->next)break;

    }

    printf("\n");

    }


}

void deletebegin()

{

    last->next=last->next->next;


}

void deleteend()

{

    struct node *temp;

    temp=last->next;

    while(temp->next!=last)

    {

        temp=temp->next;

    }

    temp->next=temp->next->next;

}

int main()

{

    /*insertatbegin(10);

    insertatbegin(20);

    insertatbegin(30);

    insertatbegin(40);

    traverselist();*/

    insertatend(10);

    insertatend(20);

    insertatend(30);

    insertatend(40);

     insertatend(50);

    insertatend(60);

    traverselist();

    deletebegin();

    traverselist();

    deletebegin();

    traverselist();

    deleteend();

    traverselist();

    return 0;

}


Post a Comment

0 Comments