:　#include　　#include　　#include　　#define　OK　1　#define　NO　0　//OK和NO是自定义的状态变量　//链队列结点　typedef　struct　Qnode　{　char　*　data　;　//数据域　struct　Qnode　*　next　;　//指针域,指向下一个结点　}　Qnode　;　//链队列　typedef　struct　{　Qnode　*　front　;　//队头指针　相当于Qnode　*front　Qnode　*　rear　;　//队尾指针　}　LinkQueue　;　//初始化队列函数　int　initQueue　(　LinkQueue　*　Q　){　//给头尾结点分配内存,让队列中头尾指针指向同一个内存　Q　->　front　=　(　Qnode　*　)　malloc　(　sizeof　(　Qnode　));　Q　->　rear　=　Q　->　front　;　//储存分配失败　if　(　!　Q　->　front　)　return　NO　;　//成功　Q　->　front　->　next　=　NULL　;　return　OK　;　}　//插入元素,成为新的队尾元素　int　insertQueue　(　LinkQueue　*　Q　){　Qnode　*　tempNode　;　//声明一个临时结点　char　*　stuId　=　(　char　*　)　malloc　(　sizeof　(　12　));　//声明变量来接收如数　tempNode　=　(　Qnode　*　)　malloc　(　sizeof　(　Qnode　));　//如果内存分配失败　if　(　!　tempNode　)　return　NO　;　//输入学号并保存　scanf　(　"%s"　,　stuId　);　tempNode　->　data　=　stuId　;　tempNode　->　next　=　NULL　;　Q　->　rear　->　next　=　tempNode　;　Q　->　rear　=　tempNode　;　return　OK　;　}　//元素出队　char　*　outQueue　(　LinkQueue　*　Q　){　//若队列为空　if　(　Q　->　front　==　Q　->　rear　)　{　return　NULL　;　}　//若