#include #include #include typedef struct _node { int item; struct _node *next; } node; typedef struct { node *front; node *back; } queue; queue initq () { return (queue){NULL, NULL}; } int isempty ( queue Q ) { return (Q.back == NULL); } queue enq ( queue Q, int x ) { node *p; p = (node *)malloc(sizeof(node)); p -> item = x; p -> next = NULL; if (isempty(Q)) { return (queue){p, p}; } Q.back -> next = p; Q.back = p; return Q; } int front ( queue Q ) { if (isempty(Q)) return -1; return Q.front -> item; } queue deq ( queue Q ) { node *p; if (isempty(Q)) return Q; p = Q.front; Q.front = Q.front -> next; if (Q.front == NULL) Q.back = NULL; free(p); return Q; } int main () { char A[128] = "abcdefghijklmnopqrstuvwxyz", f; queue Q; int i, j, alen; Q = initq(); alen = strlen(A); for (i=0; i