#ifndef QUEUE_H #define QUEUE_H #include union element_type { int operand; char operator; }; enum element_tag { TOKEN_OPERAND, TOKEN_OPERATOR }; struct expression_element { enum element_tag tag; union element_type data; }; struct queue { struct expression_element* data; struct queue *next; }; struct queue *enqueue(struct queue *queue, struct expression_element* element); struct expression_element* dequeue(struct queue **queue); void queue_destroy(struct queue **queue); #endif /* ! QUEUE_H */