Logo 
Search:

C Programming Articles

Submit Article
Home » Articles » C Programming » Data File StructureRSS Feeds

Doubly circular link list or Circular doubly link list

Posted By: Sam Evans     Category: C Programming     Views: 45045

Write a program of doubly circular link list or circular doubly link list.

Code for Doubly circular link list or Circular doubly link list in C Programming

#include<stdio.h>
#include<conio.h>

struct circular
{
    int i;
    struct circular *front;
    struct circular *back;
};


struct circular *temp;
struct circular *head;
struct circular *p;
struct circular *mid;
struct circular *move;

int cnt=0;


void create(void);
void insert(void);
void display(void);
void del(void);

void main()
{
    int ch=0;
    clrscr();
    while(ch!=5)
    {
        printf("\n1.CREATE");
        printf("\n2.INSERT");
        printf("\n3.DELETE");
        printf("\n4.DISPLAY");
        printf("\n5.EXIT");
        scanf("%d",&ch);


        if(ch==1)
        {
            create();
            cnt++;
            cnt++;
        }

        if(ch==2)
        {
            insert();
            cnt++;
        }
        if(ch==3)
        {
            del();
            cnt--;
        }

        if(ch==4)
        {
            display();
        }

        if(ch==5)
        {
            break;
        }
    }
    getch();
}
void create()
{
    head=(struct circular *)malloc(sizeof(struct circular));
    head->back=head;
    head->front=head;

    printf("ENETER THE DATA");
    scanf("%d",&head->i);
    temp=head;


    temp->back=(struct circular *)malloc(sizeof(struct circular));
    temp=temp->back;
    temp->back=head;
    head->front=temp;

    printf("ENETER THE DATA");
    scanf("%d",&temp->i);

}
void insert()
{
    int add,t;

    printf("\n\t ENTER ANY NUMBER BETWEEN 1 AND %d",cnt);
    scanf("%d",&add);
    p=head;
    t=1;
    while(t<add)
    {
        p=p->back;
        t++;
    }
    clrscr();
    mid=(struct circular *)malloc(sizeof(struct circular));
    printf("\n\n\nENETER THE DATA");
    scanf("%d",&mid->i);

    mid->back=p->back;
    p->back=mid;
    p->back->front=mid;
    mid->front=p;

}
void display()
{
    p=head;
    printf("%\nd-->",p->i);
    p=p->back;
    while(p!=head)
    {
        printf("\n%d-->",p->i);
        p=p->back;
    }
}

void del(void)
{
    int add,t;

    printf("\n\n\t ENTER ANY NUMBER BETWEEN 1 AND %d",cnt);
    scanf("%d",&add);
    p=head;
    t=1;
    while(t<add-1)
    {
        p=p->back;
        t++;
    }
    clrscr();
    mid=p->back;
    p->back=mid->back;
    mid->back->front=p;
    free(mid);
}
  
Share: 

 
 

Didn't find what you were looking for? Find more on Doubly circular link list or Circular doubly link list Or get search suggestion and latest updates.

Sam Evans
Sam Evans author of Doubly circular link list or Circular doubly link list is from London, United Kingdom.
 
View All Articles

 
Please enter your Comment

  • Comment should be atleast 30 Characters.
  • Please put code inside [Code] your code [/Code].

 
No Comment Found, Be the First to post comment!