# include # include struct dnode { int data; struct dnode *prev, *next; }; struct dnode *insert(struct dnode *p , struct dnode **q, int n) { struct dnode *temp; if(p==NULL) { p=(struct dnode *)malloc(sizeof(struct dnode)); if(p==NULL) { printf("Error Occurred\n"); exit(0); } p->data = n; p-> prev = p->next =NULL; *q =p; } else { temp = (struct dnode *)malloc(sizeof(struct dnode)); if(temp == NULL) { printf("Error Occurred\n"); exit(0); } temp->data = n; temp->prev = (*q); temp->next = NULL; (*q)->next = temp; (*q) = temp; } return (p); } void printfor( struct dnode *p ) { printf("All data of created list is\n"); while (p!= NULL) { printf("%d\t",p-> data); p = p->next; } } void main() { int n; int x; struct dnode *start = NULL ; struct dnode *end = NULL; printf("Enter the number of nodes to be created \n"); scanf("%d",&n); while ( n-- > 0 ) { printf( "Enter the data values for each node\n"); scanf("%d",&x); start = insert ( start , &end,x ); } printfor ( start ); }