下载此文档

数据结构实验报告.docx


文档分类:高等教育 | 页数:约23页 举报非法文档有奖
1/23
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/23 下载此文档
文档列表 文档介绍
: .
〈〈计算机软件技术基础》实验报告I一数据结构实验二:停车场管理问题
1. 一、问题描述实验题目e{
数据对象:D={ai,bi,ci|aiCQnode*,biCQnode*,ciCint),i=1,2...,n,n>0};数据关系:R=?
基本操作:
Car_enter(carnum,cartime)//将到达车辆a的信息入栈s或者入队qCar_Leave(carnum,cartime);//将待离开车辆d出栈s,并将q中相应车辆入栈并进行相关的操作的离开或者到达}ADTLinkQueueADT的C语言形式说明:
typedefstruct//构建一个链式队列(
QNode*front,*rear;}Queue;voidCar_enter(intcarnum,intcartime)//到达车辆的信息入栈或者入队voidCar_Leave(intcarnum,intcartime)//车离开intResult(charcarmove,intcarnum,intcartime)//根据输入信息完成车辆的离开或者达到

1)主程序流程:
主函数提示用户输入指令:到达(’A',车牌号,时间);离去(’D',车牌号,时间);停车场’P'显示停车场的车数;候车场’W显示候车场的车数;退出’E'退出程序。
调用intResult(charcarmove,intcarnum,intcartime)根据输入信息完成车辆的离开或者达到。
若输入A则调用Car_enter(intcarnum,intcartime),创建顺序栈CarS和链式队列CarQ,根据栈是否满决定输入的信息入栈还是入队列。若栈未满,输入的车辆信息入栈,若已满,入队列。
若输入D则调用Car_Leave(intcarnum,intcartime):创建一个临时栈存放退出让路的车,若在车库中找到对应的车,车库中该车后面的车辆信息进入临时栈CarS2,该车出栈,显示车牌号,此时时间,停留时间,应缴费用。临时栈中的车的信息再回到CarS中。
此时若队列CarQ不为空则将队列中车辆信息放入栈CarS中。若在车库中找不到对应的车的车牌号信息,则在表示候车场的队列中找该车信息,如果它在队列的最后,直接出列并输出车牌号,此时时间,停留时间,应缴费用。如果它不在队尾,先把对应信息保存在一个指向队列的指针中,输出车牌号,此时时间,停留时间,应缴费用。删除队列中此结点表示此车
四、详细设计
1. 元素类型、结点类型和结点指针类型:
typedefstructNodel//构建一个结构体(
intcarnum;
inttime;}Node1;typedefstructNode2(
intcarnum;
inttime;
structNode2*next;}Node2;2、创建顺序栈typedefstruct//构造一个顺序栈(
structNode1home[MaxSize];
intstacktop;//栈顶的指针}Stack;3、创建链式队列typedefstruct//构建一个链式队列(
Node2*front,*rear;}Queue;4、车辆到达:
voidCar_enter(intcarnum,intcartime)//到达车辆的信息入栈或者入队(
if(<MaxSize)//[].carnum=carnum;//到达车辆信息放入顺序栈
[].time=cartime;
PCar++;//车库里的车数量+1
printf("%d号车进入停车场!进入时刻:%d位置:%d\n”,[].carnum,[].time,PCar);++;//栈顶指针加一
}
else//若栈满
(->carnum=carnum;
->time=cartime;//到达车辆信息加入到队列中
WCar++;//候车场车辆数+1printf("%d号车进入候车场!到达时刻:%d位置:%d\n",->carnum=carnum,->time=cartime,WCar);
->next=(Node2*)malloc(sizeof(N

数据结构实验报告 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数23
  • 收藏数0 收藏
  • 顶次数0
  • 上传人2105194781
  • 文件大小250 KB
  • 时间2022-06-05