typedef struct Que_T {
int head;
int rear;
int size;
Graph_S *que[10000];
} Que_S;
Que_S g_que;
void QueInit() {
g_que.head = 0;
g_que.rear = 0;
g_que.size = 10000;
}
bool QueIsEmpty() {
return (g_que.head == g_que.rear);
}
int QueCounter(){
return (g_que.rear + g_que.size - g_que.head) % g_que.size;
}
void QuePush(Graph_S *val) {
g_que.que[g_que.rear] = val;
g_que.rear = (g_que.rear + 1) % g_que.size;
}
Graph_S *QuePop() {
Graph_S *node = g_que.que[g_que.head];
g_que.head = (g_que.head + 1) % g_que.size;
return node;
}