一、队的概念
队列也是一种表,但是是一种受限的表,只允许从一端插入,另一端山粗的表。
二、队列的数组实现
#define QMAXSIZE 100 typedef int Position; typedef int QElement; typedef struct queue { QElement Els[QMAXSIZE]; Position head,tail; }Queue; void QCreate(Queue &Q) { Q.head = Q.tail = 0; } void Enqueue(QElement e,Queue &Q) { if((Q.tail + 1) % QMAXSIZE == Q.head) { printf("Queue Full"); } else { Q.Els[Q.tail] = e; Q.tail = (Q.tail + 1)% QMAXSIZE; } } void Dequeue(QElement &e,Queue &Q) { if(Q.head == Q.tail) { printf("Queue Empty"); } else { e = Q.Els[Q.head]; Q.head = (Q.head + 1) % QMAXSIZE; } } QElement Head(Queue Q) { if(Q.tail == Q.head ) { printf("Queue Empty"); } else { return Q.Els[Q.head]; } } bool Empty(Queue Q) { return(Q.tail == Q.head ); } bool Full(Queue Q) { return((Q.tail + 1) % QMAXSIZE == Q.head ); }