《数据结构》实验二

《数据结构》实验二

ID:30781839

大小:165.50 KB

页数:13页

时间:2019-01-03

《数据结构》实验二_第1页
《数据结构》实验二_第2页
《数据结构》实验二_第3页
《数据结构》实验二_第4页
《数据结构》实验二_第5页
资源描述:

《《数据结构》实验二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、华北水利水电学院数据结构实验报告2016-2017.学年第一学期级计算机科学与技术专业班级:—学号:_姓名:实验二栈和队列及其应用—、实验题目:栈和队列及其应用二、实验内容:1.病人看病模拟程序编写一个程序,反映病人到医院看病,排队看医生的情况。在病人排队过程中,主要重复两件事:(1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。(2)护士从等待队列中取出一位病人的病历,该病人进入诊室就诊。要求采用不带头结点的单链表作为队列,模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下:(1)

2、排队一一输入排队病人的病历号,加入到病人排队队列中。(2)就诊一一病人排队队列屮最前面的病人就诊,并将其从队列屮删除。(3)查看队列一一从队首到队尾输出所有病人的病历号。(4)不再排队,余下依次就诊一一从队首到队尾列出所有的排队病人的病历号,并退出运行。(5)下班一一退出运行。2.停车场管理设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进岀。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车停放在车场的最北段),若停车厂内已停满n辆汽车,则后来的汽车

3、只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车迹可开入;停车场内某辆车要离开时,在它之后进入的车连必须先退出车厂为它让路,待该车辆开出大门外,其他车辆再按原次序进入车场,每辆停放在车场的车在它离开停车时必须按它停留的时间长短缴纳费用。编写按上述要求进行管理的模拟程序。可以将停车场定义成一个顺序栈S0,便道定义成一个链队列q,而停车场中的某辆车要离开,则在它后面进停车场的车必须让道,让其离开,所以必须有一个临吋的顺序栈si,存放让道的车辆。当有车辆进停车场时,若栈s0不满,则直接进入栈s0:

4、若栈s0满,则进入便道(链队列q)。若有s0中车辆x离开时,先让在x后面进栈的车从s0退栈并进入栈si中,让x离开并收取停车费(在便道上停留的时间不收费),然后再把si屮所有元素退栈并重新进入s0栈,最后,将链队列q中的队头元素出队并进栈到s0中。基本要求和测试数据参见《数据结构题集》P96。三、实验要求:1•使用C语言完成算法设计和程序设计并上机调试通过。2.撰写实验报告,提供实验结果和数据。3.写出算法设计小结和心得。四、程序源代码:第一题:#incIude#incIude

5、Ioc・h>typedefstructqnode{intdata;structqnode*next;}QNode;typedefstruct{QNode*front,*rear;}QuType;voidSeeDoctor0intseI,fIag=1,find,no;QuType*qu;QNode*p,*q;qu=(QuType*)maIIoc(sizeof(QuType));qu~>front二qu-〉rear二NULL;while(fIag==1){printfCAnO;printft菜单栏t**

6、*H);printf(nttt1:排队2:就诊3:查看排队rT);printf(nttt4.不再排队,余下依次就诊”);printf("ttt5:下班请选择:”);scanf("%d",&sel);switch(sei)case1:printf("ttt»输入病历号:H);do{scanf("%d",&no);find二0;p=qu->front;while(p!二NULL&&Ifind){if(p->data二二no)find=1;p=p->next;}if(find

7、)printf("ttt»输入的病历号重复,重新输入:”);}while(find==1);p二(QNode*)maIIoc(sizeof(QNode));p->data=no;p->next二NULL;if(qu->rear二二NULL){qu~>front二qu->rear二p;}eIse{qu->rear->next=p;qu~>rear=p;}break;case2:if(qu->front=NULL)printfC1ttt»没有排队的病人!”);{p=qu->front;pri

8、ntfC*ttt>>病人%d就诊u,p->data);if(qu->rear二二p){qu->front=qu->rear=NULL;}eIsequ->front二p->next;free(p);}break;case3:if(qu->front二二NULL)printf("ttt>>没有排列的病人!");eIse{p=qu~>frorrt;printfC*ttt>>排队病人:”);while(p!=NULL){p

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。