实验2 堆与队列.doc

实验2 堆与队列.doc

ID:55514300

大小:33.50 KB

页数:2页

时间:2020-05-15

实验2 堆与队列.doc_第1页
实验2 堆与队列.doc_第2页
资源描述:

《实验2 堆与队列.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验2堆栈与队列实验目的1. 会定义顺序栈和链栈的结点类型。2. 掌握栈的插入和删除结点在操作上的特点。3. 熟悉对栈的一些基本操作和具体的函数定义。4.会定义顺序队列和链队列的结点类型。实验内容程序1该程序的功能是实现顺序栈的定义和操作。该程序包括定义的栈结构类型以及对每一种栈操作的具体的函数定义和主函数。/*定义DataType为int类型*/typedefintDataType; /*栈的结点类型*/#defineMAXSIZE1024typedefstruct{DataTypedata[MAXSIZE];inttop;

2、}SeqStack; /*初始化顺序栈*/SeqStackSeqStackInit() /*检查顺序栈是否为空*/intSeqStackEmpty(SeqStackS) /*把S置为空栈*/voidClearStack(SeqStack*S) /*把元素x压入栈,使其成为新的栈顶元素*/voidSeqStackPush(SeqStack*S,DataTypex) /*把栈顶元素弹出*/DataTypeSeqStackPop(SeqStack*S) /*取栈顶元素*/DataTypeSeqStackGetTop(SeqStack

3、S) /*输出顺序栈中的元素*/voidSeqStackPrint(SeqStackS)程序2:试利用堆栈将队列中的元素逆置。程序3:编写括号匹配算法。1.队列的抽象数据类型定义:ADTQueue{数据对象:D={

4、∈ElemSet,i=1,2,...,n,n>=0}数据关系:R1={<,>

5、,∈D,i=2,...,n}基本操作:InitQueue(&Q)构造一个空队列QQueueEmpty(Q)判断队列是否为空QueueLenght(Q)返回队列Q的元素个数,即队列的长度GetHead(Q,&e)取队列Q的队头元素,并用e返

6、回EnQueue(&Q,e)将元素e入队列DeQueue(&Q,&e)删除非空队列Q的队头元素,并用e返回其值}ADTQueue1.队列的表示:队列有两种表示方法:链队列、循环队列(顺序队列)。(1)链队列的表示:typedefstructQNode{QElemTypedata;structQNode*next;}QNode,*QueuePtr;typedefstruct{QueuePtrfront;QueuePtrrear;}LinkQueue;(2)循环队列的表示1.操作系统作业调度模拟。【简要分析】假设有几个作业运行。如

7、果都需要请求CPU,则可以让作业按先后顺序排队,每当CPU处是完一个作业后,就可以接受新的作业,这时队列中队头的作业先退出进行处理。后来的作业排在队尾。此题算法跟模拟服务台前的排队现象问题相似,假定只有一个CPU,但为了防止一个作业占用CPU太久,可规定每个作业一次最长占用CPU的时间(称时间片),如果时间片到,作业未完成,则此作业重新进入等待队列,等到下次占有CPU时继续处理。

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

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

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