return startstruct node *display(struct node *startstruct node *ptrptr startwhile(ptr -next !startprintf("\ % "ptr -data)ptr ptr -nextprintf("\ % "ptr -data)return startstruct node *insert_beg(struct node *startstruct node *new_node*ptrint numprintf("\ enter the data ")scanf("% "&num)new_node (struct node *)malloc(sizeof(struct node))new_node-data numptr startwhile(ptr -next !startptr ptr -nextnew_node -prev ptrptr -next new_nodenew_node -next startstart -prev new_nodestart new_nodereturn startstruct node *insert_end(struct node *startstruct node *ptr*new_nodeint numprintf("\ enter the data ")scanf("% "&num)new_node (struct node *)malloc(sizeof(struct node))new_node -data numptr startwhile(ptr -next !startptr ptr -nextptr -next new_nodenew_node -prev ptrnew_node -next startstart-prev new_nodereturn startstruct node *delete_beg(struct node *startstruct node *ptrptr startwhile(ptr -next !startptr ptr -nextptr -next start -nexttemp startstart=start->nextstart->prev=ptrfree(temp)return start