|
队列的链接实现称为链队,链队实际上是一个同时带有头指针和尾指针的单链表。头指针指向队头节点,尾指针指向队尾节点即单链表的最后一个节点。为了简便,链队设计成一个带头节点的单链表。
|
|
|
|
|
|
.队列以链表形式出现,链首节点为队头,链尾节点为队尾。
|
|
|
.队头指针为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)
|
|
|
|