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

struct node
{
    int data;
    struct node * next;
};

struct node * start;
 struct node* ptr,*ptr1;
 


void insertfront(int x)
{
   struct node *temp;
   temp=(struct node*)malloc(sizeof(struct node));
   if(start==NULL)
   {
    temp->data=x;
    temp->next=temp;
    start=temp;
   }
   else
   {
    ptr=start;
    while(ptr->next!=start)
       { ptr=ptr->next;
       }
    
    temp->data=x;
    temp->next=start;
    ptr->next=temp;
    start=temp;   
   }
}

void insertend(int y)
{
 struct node *temp;
 temp=(struct node*)malloc(sizeof(struct node));
 if(start==NULL)
   {
    temp->data=y;
    temp->next=temp;
    start=temp;
   }
 else
 {
  temp->data=y;
  ptr=start;
  while(ptr->next!=start)
  {
  ptr=ptr->next;
  }
  ptr->next=temp;
  temp->next=start;
 }
}

void deletestart()
{
    if(start==NULL)
    {
        printf("Empty!\n");
        return;
    }
    else if(start->next==start)
    {
        start=NULL;
        free(start);
    }
    else
    {
       ptr=start;
       while(ptr->next!=start)
       {
        ptr=ptr->next;
       }
       ptr->next=start->next;
       free(start);
       start=ptr->next;
    }
}
void deletelast()
{
  if(start==NULL)
    {
        printf("Empty!\n");
        return;
    }
    else if(start->next==start)
    {
        start=NULL;
        free(start);
    }
    ptr,ptr1=start;
    while(ptr->next!=start)
    {
        ptr1=ptr;
        ptr=ptr->next;
    }
    ptr1->next=ptr->next;
    free(ptr);
}
void display()
{
    ptr=start;
    if(ptr==NULL)
    {
        printf("Empty\n");
        return;
    }
    while(ptr->next!=start)
    {
        printf("%d ", ptr->data);
        ptr=ptr->next;
    }
    printf("%d ", ptr->data);
}
void main()
{
    int a, num;
    do
    {
        printf("\n1-insert start, 2-insert end, 3-delete start, 4-delete end, 5-display, 6-exit\n");
        scanf("%d", &a);
        switch(a)
        {
            case 1 : printf("Enter number\n");
                     scanf("%d", &num);
                     insertfront(num);
                     break;
            case 2 : printf("Enter number\n");
                     scanf("%d", &num);
                     insertend(num);
                     break;
            case 3 : deletestart();
                     break;
            case 4 : deletelast();
                     break;
            case 5 : display();
                     break;
            case 6 : printf("Program terminated\n");
                     break;
            default: printf("Enter valid number\n");
                     break;
        }
    }
    while(a!=6);
}

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: