队列
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; }