1、ThanksWangqiongofZhongbeicollegeattachingtoNanjing Normal University第三节队列一、逻辑结构 只能在一端(队尾rear)插入,在另一端(队头front)删除的线性表。 先进先出表FIFO(FirstInFirstOut)基本操作:进/出队列判别队列满/空队列的应用背景:排队模型。排队问题无处不在,各种服务行业、甚至生产管理中都存在排队问题。二、链式存储结构Typedefstructqueuenode//队列中的结点类型{ElemTypedata;structNode
3、sWangqiongofZhongbeicollegeattachingtoNanjing Normal Universityif(Q.front==NULL)Q.front=Q.rear=p;else{Q.rear->link=p;Q.rear=p;}return(OK);}2、出队列StatusLinkQueue_Leave(LinkQueue&Q,ElemType&e){QueueNode*p;if(Q.front==NULL)return(UNDERFLOW);p=Q.front;Q.front=p->link;if(Q.re
4、ar==p)Q.rear=NULL;e=p->data;free(p);return(OK);}3、销毁队列voidLinkQueue_Destroy(LinkQueue&Q){QueueNode*p;while(Q.front){p=Q.front;Q.front=p->link;free(p);}Q.rear=NULL;}三、顺序存储结构动态顺序存储结构:3-12ThanksWangqiongofZhongbeicollegeattachingtoNanjing Normal University#defineQUEUE_SIZE
6、eturn(OK);}队列空:Q.front==Q.rear进队列:*(Q.base+Q.rear)=e;Q.rear++;出队列:e=*(Q.base+Q.front);Q.front++;队列满:Q.rear==QUEUE_SIZE=》假溢出进队列:Q.rear=(Q.rear+1)%QUEUE_SIZE出队列:Q.front=(Q.front+1)%QUEUE_SIZE队列空:Q.front==Q.rear3-12ThanksWangqiongofZhongbeicollegeattachingtoNanjing Normal