31 lines
546 B
C
31 lines
546 B
C
#ifndef QUEUE_H
|
|
#define QUEUE_H
|
|
|
|
#include <stdlib.h>
|
|
|
|
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 */ |