40 }
41
42 Status QueueEmpty(LinkQueue Q)
43 {//判空。 44
45 if(Q.rear==Q.front)
46 return TRUE;
47 else
48 return FALSE;
49 }
50
51 int QueueLength(LinkQueue Q)
52 {//求队列长度。 53
54 int i=0;
55 QueuePtr p;
56 p=Q.front;
57 while(Q.rear!=p)
58 {
59 i++;
60 p=p->next;
61 }
62 return i;
63 }
64
65 Status GetHead(LinkQueue Q,QElemType &e)
66 {//取队头元素,用e返回其值。 67
68 QueuePtr p;
69 if(Q.front==Q.rear)
70 return ERROR;
71 p=Q.front->next;
72 e=p->data;
73 return OK;
74 }
75
76 Status EnQueue(LinkQueue &Q,QElemType e)
77 {//将元素e入队。 78
79 QueuePtr p;
80 if(!(p=(QueuePtr)malloc(sizeof(QNode))))
81 exit(OVERFLOW);
82 p->data=e;
83 p->next=NULL;