Tuesday, 16 October 2012

CIRCULAR LINK LIST DELETION


CIRCULAR LINK LIST DELETION 

#include
#include
int main()
{

    struct node{
        int data;
        struct node *next;
        }*head;
        struct node *temp,*temp1,*temp2;
        head=NULL;
        int num,i,n;
        printf("enter number of nodes in link list=");
        scanf("%d",&num);
        for(i=0;i
        {
            scanf("%d",&n);
            if(head==NULL)
            {
                head=malloc(sizeof(struct node));
                head->data=n;
                temp=head;
            }
            else{
                temp->next=malloc(sizeof(struct node));
                temp->next->data=n;
                temp=temp->next;
            }
        }
        temp->next=head;
        temp=head;

        int pos;
        temp=head;
        printf("enter node no. for deletion=");
        scanf("%d",&pos);
        if(pos==1)
        {
            temp2=head;
            while(temp->next!=head)
            {
                temp=temp->next;
            }
            head=head->next;
            temp->next=temp2->next;
            free(temp2);
        }
        else{
            for(i=1;i
            {
                temp1=temp;
                temp=temp->next;
            }
            temp1->next=temp->next;
            free(temp);
        }
        temp=head;
        // AFTER DELETION//
        for(i=0;i<15 font="font" i="i">
            {
                printf("%d\n",temp->data);
                temp=temp->next;
            }
            return 0;
}

No comments: