欢迎来到天天文库
浏览记录
ID:49287797
大小:70.00 KB
页数:16页
时间:2020-03-01
《数据结构上机--停车场管理问题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实习指导[实习题目]:停车场管理。[实习内容]:首先,实现栈和队列的基本操作,在此基础上,实现停车场管理。停车场管理问题描述:设停车场是一个可停放n辆车的狭长通道,且只有一个大门可供汽车进出。在停车场内,汽车按到达的先后次序,由北向南依次排列(假设大门在最南端)。若车场内已停满n辆车,则后来的汽车需在门外的便道上等候,当有车开走时,便道上的第一辆车即可开入。当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车开出大门后,其它车辆再按原次序返回车场。每辆车离开停车场时,应按其停留时间的长短交费(在便道上停留的时间不收费)。试编写程
2、序,模拟上述管理过程。要求以顺序栈模拟停车场,以链队列模拟便道。从终端读入汽车到达或离去的数据,每组数据包括三项:①是“到达”还是“离去”;②汽车牌照号码;③“到达”或“离去”的时刻。与每组输入信息相应的输出信息为:如果是到达的车辆,则输出其在停车场中或便道上的位置;如果是离去的车辆,则输出其在停车场中停留的时间和应交的费用。(提示:需另设一个栈,临时停放为让路而从车场退出的车。)[实习目的]:通过实习,熟悉栈和队列的基本特点,掌握利用栈和队列解决具体问题的方法。[实习步骤]:1.实现顺序栈的基本操作l基本思路首先实现一个整型顺序栈的初始化、判栈空、进
3、栈、出栈等基本操作,并在主程序中调用这些操作。l基本框架#include#defineTRUE1#defineFALSE0#defineStack_Size50typedefintStackElementType;typedefstruct精选范本,供参考!{StackElementTypeelem[Stack_Size];inttop;}SeqStack;/*以下是函数原形说明。注意函数头后面有分号。*/voidInitStack(SeqStack*s);intIsEmpty(SeqStack*s);intPush(SeqStack
4、*s,StackElementTypee);intPop(SeqStack*s,StackElementType*e);/*以下是函数定义。注意函数头后面无分号。*/voidInitStack(SeqStack*s)/*顺序栈的初始化函数*/{……;}intIsEmpty(SeqStack*s)/*顺序栈的判栈空函数*/{……;}intPush(SeqStack*s,StackElementTypee)/*顺序栈的进栈函数*/{……;}StatusPop(SeqStack*s,StackElementType*e)/*顺序栈的出栈函数*/{……;}vo
5、idmain(void){……;}l要点提示主程序的基本过程如下:voidmain(void){SeqStackmy_stack;StackElementTypex;StackElementTypey;InitStack(&my_stack);if(IsEmpty(&my_stack))打印:“my_stack已被初始化为空栈”;精选范本,供参考!提示输入10个正整数;循环10次,执行下面操作:{读入整数x;Push(&my_stack,x);}while(!IsEmpty(&my_stack)){Pop(&my_stack,&y);打印y;}}l测试
6、数据读入数据:19,14,23,01,68,20,84,27,55,11打印结果:读入序列的逆序。1.同时实现顺序栈和链队列的基本操作l基本思路在前面已经实现的整型顺序栈的基础上,进一步实现一个整型链队列的基本操作。l基本框架(1)在上述程序框架的前面,增加如下包含语句:#include(2)在上述程序框架的类型定义部分,增加如下链队列定义:typedefintQueueElementType;typedefstructNode{QueueElementTypedata;/*数据域*/structNode*next;/*指针域*/}
7、LinkQueueNode;typedefstruct{LinkQueueNode*front;LinkQueueNode*rear;}LinkQueue;(3)在上述程序框架的函数原型说明部分,增加如下链队列的操作函数原型说明:精选范本,供参考!intInitQueue(LinkQueue*Q);intEmptyQueue(LinkQueueQ);intEnterQueue(LinkQueue*Q,QueueElementTypex);intDeleteQueue(LinkQueue*Q,QueueElementType*x);(4)在上述程序框架的
8、函数定义部分,增加上述链队列的操作函数定义。(5)在上述程序框架的主程序中,增加调用链队列操作
此文档下载收益归作者所有