Click here to hide categories Click here to show left categories

User: Home          welcome : Guest          Log In / Register here     




PROGRAM TO INSERT AT SPECIFIC POSITION OF DOUBLY LINKED LIST

Download Attachment
/**************************************************************/
/*PROGRAM TO INSERT AT SPECIFIC POSITION OF DOUBLY LINKED LIST*/
/**************************************************************/

#include < stdio.h>
#include < conio.h>
#include < malloc.h>
#include< process.h>
#include < ctype.h>

struct doubly_list
{
    int info;
    struct doubly_list *prev;
    struct doubly_list *next;
}*first,*last,*newnode,*ptr;

void main()
{
    int item,i,loc;
    char ch;
    clrscr();
    newnode=(struct doubly_list*)malloc(sizeof(struct doubly_list));
    first=newnode;
    last=newnode;
    newnode->prev=NULL;
    do
    {
        printf("\nEnter data: ");
        scanf("%d",&item);
        newnode->info=item;
        printf("\nDo you want to create another node:(y/n)");
        fflush(stdin);
        scanf("%c",&ch);
        if(tolower(ch)=='y')
        {
            newnode->next=(struct doubly_list*)malloc(sizeof(struct doubly_list));
            newnode->next->prev=newnode;
            newnode=newnode->next;
            last=newnode;
        }
        else
        {
            newnode->next=NULL;
        }
    }while(tolower(ch)!='n');
    printf(“\nDoubly Linked List is:”);
    ptr=first;
    i=1;
    while(ptr!=NULL)
    {
        printf("\nNode %d : %d",i,ptr->info);
        ptr=ptr->next;
        i++;
    }
printf("\nEnter the item tobe inserted: ");
    scanf("%d",&item);
    printf("\nEnter the location: ");
    scanf("%d",&loc);
    newnode=(struct doubly_list *)malloc(sizeof(struct doubly_list));
    newnode->info=item;
    ptr=first;
    i=1;
    while(i    {
        ptr=ptr->next;
        i++;
    }
    newnode->next=ptr->next;
    newnode->prev=ptr;
    ptr->next->prev=newnode;
    ptr->next=newnode;
            
    printf("\nAfter insertion the linked list is:\n");
    ptr=first;
    i=1;
    while(ptr!=NULL)
    {
        printf("\nNode %d : %d",i,ptr->info);
        ptr=ptr->next;
        i++;
    }    
    getch();
}
 

Share this article   |    Print    |    Article read by 9603 times
Author:
Rohit kakria
I am software developer
Related Articles:
Related Interview Questions: No related interview question