|
队列的链接实现称为链队,链队实际上是一个同时带有头指针和尾指针的单链表。头指针指向队头结点;尾指针指向队尾结点即单链表的最后一个结点。为了简便,链队设计成一个带头结点的单链表。
|
|
|
|
|
|
.队列以链表形式出现,链首结点为队头,链尾结点为队尾。
|
|
|
.队头指针为LQ->front,队尾指针为LQ->rear,队头元素的引用为Q->front->data,队尾元素的引用为LQ->rear->data。
|
|
|
.初始化时,设置LQ->front=LQ->rear=NULL。
|
|
|
.进队操作,与链表中链尾插入操作一样;出队操作,与链表中链首删除操作一样。
|
|
|
.队空的条件为LQ->front==NULL。理论上,只要系统内存足够大,链队是不会满的。
|
|
|
|
1)队列初始化InitQueue(LQueue *LQ)
|
|
|
|
2)入队EQueue(LQueue *LQ, ElemType e)
|
|
|
|
3)出队OQueue(LQueue *LQ, ElemType *e)
|
|
|
|
4)判空QueueEmpty(LQueue *LQ)
|
|
|
|
5)取队首元素GetQhead(LQueue *LQ,ElemType *e)
|
|
|
|
6)清队列ClearQueue(LQueue *LQ)
|
|
|
|