C语言用双向链表实现队列
参考代码#includestdio.h#includestdlib.htypedefstructNode{charch;structNode*prev;structNode*next;}Node;typedefstructQueue{intsize;Node*begin;Node*end;}Queue;voidPush(Queue*q,charinput){Node*push(Node*)malloc(sizeof(Node));push-chinput;push-prevNULL;push-nextNULL;if(q-size0){q-beginpush;q-endpush;}else{q-end-nextpush;push-prevq-end;q-endpush;}q-size;}voidPop(Queue*q){if(q-size0){return;}if(q-size1){free(q-begin);q-size0;q-beginNULL;q-endNULL;printf_s(\r\nQueue q is now empty!!!);return;}Node*tempq-begin-next;temp-prevNULL;free(q-begin);q-begintemp;q-size--;}voiditerator(Queue*q){Node*headq-begin;while(head){printf_s(%c ,head-ch);headhead-next;}}intmain(){Queue q{0,NULL,NULL};for(inti0;i26;i){Push(q,65i);}iterator(q);for(inti0;i26;i){Pop(q);printf_s(\r\n);iterator(q);}return0;}运行结果