Linked List Delete (One Way)




#include <stdio.h>
struct node
{
    int data;
    struct node *next;
};



int getdata(int n)
{
    struct node *current;
    struct node *temp;
    struct node *head;
    current=(struct node*)malloc(sizeof(struct node));
    head=current;
    while(1)
    {
    if(n!=0)
    {
       current->data=n;
       temp=current;
       current=(struct node*)malloc(sizeof(struct node));
       temp->next=current;
       printf("Enter Number(0 to terminate)\n");
       scanf("%d",&n);


    }
    else
    {
        temp->next=NULL;
        break;

    }
    }
    return head;
}
int print(struct node *head)
{
    struct node *temp;
    temp=head;
    while(temp!=NULL)
    {
        printf("%d    %d    %d\n",temp,temp->data,temp->next);
        temp=temp->next;

    }
    return;


}
int delete(struct node *head)
{
    struct node *ihead,*lhead,*uhead;
    uhead=head;
    int a;
    printf("After Which Data You want to Delete=");
    scanf("%d",&a);
    while(uhead->data!=a)
    {
        uhead=uhead->next;
    }
    lhead=uhead->next;
    ihead=lhead->next;
    uhead->next=ihead;




}
int main()
{
    int n;
    printf("Enter Data=");
    scanf("%d",&n);
    struct node *head;
    head=getdata(n);
    print(head);
    delete(head);
    print(head);

}

Share on Google Plus

About Ashadullah Shawon

I am Ashadullah Shawon. I am a Software Engineer. I studied Computer Science and Engineering (CSE) at RUET. I Like To Share Knowledge.
    Blogger Comment
    Facebook Comment

0 comments:

Post a Comment