Logo 
Search:

C Programming Articles

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

Doublely link list with create, insert, delete and display operations using structure pointer

Posted By: James Evans     Category: C Programming     Views: 21833

Doublely link list with create, insert, delete and display operations using structure pointer.

Code for Doublely link list with create, insert, delete and display operations using structure pointer in C Programming

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


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

void main()
{
    struct doubly *head=0;
    struct doubly *last=0;
    struct doubly *p=0;
    struct doubly *temp=0;
    int ch,intch,user,cnt=0,t,add;
    clrscr();
    printf("\n\t 1. CREATE.");
    printf("\n\t 2. INSERT.");
    printf("\n\t 3. DELETE.");
    printf("\n\t 4. DISPLAY.");
    printf("\n\t 5.EXIT.");
    scanf("%d",&ch);

    while(ch!=5)
    {
        if(ch==1)
        {
            cnt=0;
            head=(struct doubly *)malloc(sizeof(struct doubly));
            head->back=0;
            head->front=0;
            printf("\n\t ENTER DATA::: ");
            scanf("%d",&head->i);
            cnt++;
            last=head;
        }
        if(ch==2)
        {

            printf("\n\t 1. INSERTION AT FRONT.");
            printf("\n\t 2. INSERTION AT MIDDLE.");
            printf("\n\t 3. INSERTION AT END.");
            scanf("%d",&intch);
            temp=(struct doubly *)malloc(sizeof(struct doubly));
            printf("\n\t ENTER DATA:::");
            scanf("%d",&temp->i);

            if(intch==1)
            {
                temp->front=0;
                temp->back=head;
                head=temp;
                cnt++;
            }
            if(intch==3)
            {
                p=head;
                while(p->back!=0)
                {
                    p=p->back;
                }
                temp->back=0;
                temp->front=p;
                p->back=temp;
                cnt++;
            }
            if(intch==2)
            {
                printf("\n\tNTER VALUE BETVN 1--%d",cnt);
                scanf("%d",&add);
                t=1;
                p=head;
                while(t<add)
                {
                    p=p->back;
                    t++;
                }
                temp->back=p->back;
                p->back->front=temp;
                p->back=temp;
                temp->front=p;

            }
        }
        if(ch==4)
        {
            p=head;
            while(p!=0)
            {
                printf("\t-->%d",p->i);
                p=p->back;
            }
            printf("\n\t total nodes %d",cnt);
        }
        if(ch==3)
        {
            printf("\n\t1. DELETE FRONT");
            printf("\n\t2. DELETE MIDDLE");
            printf("\n\t3. DELETE END");
            scanf("%d",&intch);
            if(intch==1)
            {

                head->back=t;
                free(head);
                head=t;
                head->front=0;
                cnt--;
            }
            if(intch==3)
            {
                p=head;
                while(p->back!=0)
                {
                    p=p->back;
                }
                temp->front=p;
                p->back=temp;
                temp->back=0;
                cnt--;
            }
            if(intch==2)
            {
                printf("\n\tNTER VALUE BETVN 1--%d",cnt);
                scanf("%d",&add);
                t=1;
                p=head;
                while(t<(add-1))
                {
                    p=p->back;
                    t++;
                }
                temp=p->back;
                p->back=temp->back;
                temp->back->front=p;
                free(temp);

            }

        }
        printf("\n\t 2. INSERT.");
        printf("\n\t 3. DELETE.");
        printf("\n\t 4. DISPLAY.");
        printf("\n\t 5.EXIT.");
        scanf("%d",&ch);
    }
    getch();
}
  
Share: 



James Evans
James Evans author of Doublely link list with create, insert, delete and display operations using structure pointer is from London, United Kingdom.
 
View All Articles

Related Articles and Code:


 
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!