全文预览

栈和队列及其应用-理发室问题

上传者:qnrdwb |  格式:doc  |  页数:5 |  大小:24KB

文档介绍
一个位{ delet(Qchair); c++; } if(Qchair.len<n&&Qwait.len>0)//当椅子不为空和排队人数不为0时{ delet(Qwait);//删除等待队列首元素 str(Qchair,i);//增加椅子队列 x[b][1]=Qwait.len;?//记下此刻排队等待人数 x[b++][0]=i;//记下顾客开始理发时间; } } for(;;i++)//收尾工作{ if(Qchair.len>0&&(i-Qchair.queue[Qchair.front])>=h[c])//若理发顾客理发完成时,删除椅子队列首元素,空出一个位{ delet(Qchair); c++; } if(Qchair.len<n&&Qwait.len!=0)//当椅子不为空和排队人数不为0时{ delet(Qwait);//删除等待队列首元素 str(Qchair,i);//增加椅子队列 x[b][1]=Qwait.len;?//记下此刻排队等待人数 x[b++][0]=i;//记下顾客开始理发时间; } if(Qchair.len==0&&Qwait.len==0)//当椅子队列为空和等待队列为空,即收尾工作结束; break; } intm(0); doublel(0); doublek(0); for(i=1;i<a;i++) { k+=x[i][0]-g[i]+h[i];//顾客的逗留时间=顾客开始理发时间-顾客到来时间+顾客理发时间 l+=x[i][1];//计算记下的等待长度的和; } k=k/(a-1); l=l/(a-1); m=x[a-1][0]+h[a-1]-60*t; cout<<"顾客的平均逗留时间为:"<<k<<endl; cout<<"排队时平均队长为:"<<l<<endl; cout<<"关门后收尾时间为:"<<m<<endl;?}

收藏

分享

举报
下载此文档