#include <stdio.h>
struct node
{
int data;
struct node *next;
struct node *prev;
};
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;
current->prev=temp;
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("%10d%10d%10d%10d\n",temp->prev,temp,temp->data,temp->next);
temp=temp->next;
}
return;
}
int insert(struct node *head)
{
struct node *ihead,*lhead,*uhead;
uhead=head;
int a,b;
printf("After Which Data=");
scanf("%d",&a);
printf("Enter Element=");
scanf("%d",&b);
ihead=(struct node*)malloc(sizeof(struct node));
ihead->data=b;
while(uhead->data!=a)
{
uhead=uhead->next;
}
lhead=uhead->next;
uhead->next=ihead;
ihead->prev=uhead;
ihead->next=lhead;
lhead->prev=ihead;
}
int main()
{
int n;
printf("Enter Data=");
scanf("%d",&n);
struct node *head;
head=getdata(n);
print(head);
insert(head);
print(head);
}
0 comments:
Post a Comment