#include <stdio.h>
#include<stdlib.h>
struct node{
int data;
struct node *prev;
struct node *link;
};
void display(struct node *ptr){
while(ptr!=NULL){
printf(" %d ",ptr->data);
ptr = ptr->link;
}
}
struct node *insert_beg(struct node *head, int s){
struct node *e = malloc(sizeof(struct node));
head->prev = e;
e->link = head;
e->data = s;
return e;
}
struct node *insert_end(struct node *head,int s){
struct node *e = malloc(sizeof(struct node));
struct node *ptr = head;
e->data =s;
e->link = NULL;
e->prev = NULL;
while(ptr->link!=NULL)
{
ptr= ptr->link;
}
ptr->link = e;
e->prev = ptr;
return head;
}
struct node *insert_pos(struct node *head,int s,int pos){
struct node *e = malloc(sizeof(struct node));
struct node *ptr = head;
int j = 0;
while (j!=pos-1)
{
ptr= ptr->link;
j++;
}
e->data = s;
e->link = ptr->link;
e->prev = ptr;
ptr->link = e;
return head;
}
int main()
{
struct node *a;
struct node *b;
struct node *c;
struct node *d;
a = malloc(sizeof(struct node));
b = malloc(sizeof(struct node));
c = malloc(sizeof(struct node));
d = malloc(sizeof(struct node));
a->prev = NULL;
a->data = 1;
a->link = b;
b->prev = a;
b->data = 2;
b->link = c;
c->prev = b;
c->data = 3;
c->link = d;
d->prev = c;
d->data = 4;
d->link = NULL;
display(a);
printf("\n");
// a = insert_beg(a,0);
// a = insert_end(a,5);
a = insert_pos(a,0,1);
display(a);
return 0;
}
Comments
Post a Comment