#include #include #include #include #include #define MS 1025 typedef struct dl_node { char *val; struct dl_node *next; struct dl_node *prev; } NODE; typedef struct dl_queue { NODE *start; NODE *end; } QUEUE; void insert(QUEUE *queue,FILE* folo ); void get(QUEUE *queue,char *ret_array); main(int argc,char* argv[]) { clrscr(); FILE* fp; char msgbuf[1025]; int n; QUEUE q; q.start=q.end=NULL; n=atoi(argv[1]); if(argc!=3) { printf("You forgot to enter the some of the data\n"); exit(1); } if( (fp=fopen(argv[2],"r"))==NULL ) { printf("cannot open reading file\n"); exit(1); } for(int i=0; ival =(char *) malloc( (unsigned) (strlen(temp_message) + 1)); strcpy(nn->val,temp_message); nn->next = queue->start; if(queue->start!=NULL) { queue->start->prev =nn; } nn->prev = NULL; queue->start = nn; if(queue->end==NULL) { queue->end = nn; } } void get(QUEUE *queue,char* ret_array) { NODE *temp; if(queue->end == NULL) { return; } strcpy(ret_array , queue->end->val); if( queue->end->prev!=NULL) { queue->end->prev->next = NULL; } temp = queue->end; queue->end = queue->end->prev; free(temp); if(queue->end == NULL) { queue->start=NULL; } }