欢迎来到天天文库
浏览记录
ID:47863638
大小:48.00 KB
页数:6页
时间:2019-07-07
《实验三 队列基本操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验三队列基本操作一、实验目的掌握队列的基本操作:初始化、判空、判满、入队、出队、取队列首元素等运算。二、实验要求包含有头文件和main函数;1.格式正确,语句采用缩进格式;2.设计子函数实现题目要求的功能;3.编译、连接通过,熟练使用命令键;4.运行结果正确,输入输出有提示,格式美观。三、实验设备、材料和工具1.奔腾2计算机或以上机型2.turboc2,win-tc四、实验内容和步骤实验内容:1.分析程序。2.完成程序编写和补充步骤:3.确定数据的结构;4.利用main函数调用各子函数;5.调试、分析运行结果。五、实验报告要求1.根据实验内容初步设计好程序,并从理论上排除错
2、误;2.针对程序的健壮性准备好测试数据;3.结果分析中如实填写运行后的结果,记录调试过程中产生的重要问题和解决方法。六、根据实验过程填写下面内容1.构建栈头文件,文件名称seqstack.h#defineTRUE1#defineFALSE0#defineStack_Size50#defineStackElementTypechar/*顺序栈*/typedefstruct{StackElementTypeelem[Stack_Size];/*用来存放栈中元素的一维数组*/inttop;/*用来存放栈顶元素的下标,top为-1表示空栈*/}SeqStack;/*初始化*/void
3、InitStack(SeqStack*S){/*构造一个空栈S*/S->top=-1;}/*判栈空*/intIsEmptys(SeqStack*S)/*判断栈S为空栈时返回值为真,反之为假*/{return(S->top==-1?TRUE:FALSE);}/*判栈满*/intIsFull(SeqStack*S)/*判断栈S为满栈时返回值为真,反之为假*/{return(S->top==Stack_Size-1?TRUE:FALSE);}/*入栈*/intPush(SeqStack*S,StackElementTypex){if(S->top==Stack_Size-1)ret
4、urn(FALSE);/*栈已满*/S->top++;S->elem[S->top]=x;return(TRUE);}/*出栈*/intPop(SeqStack*S,StackElementType*x){/*将栈S的栈顶元素弹出,放到x所指的存储空间中*/if(S->top==-1)/*栈为空*/return(FALSE);else{*x=S->elem[S->top];S->top--;/*修改栈顶指针*/return(TRUE);}}/*取栈顶元素。*/intGetTop(SeqStack*S,StackElementType*x){/*将栈S的栈顶元素弹出,放到x所指
5、的存储空间中,但栈顶指针保持不变*/if(S->top==-1)/*栈为空*/return(FALSE);else{*x=S->elem[S->top];return(TRUE);}}2.构建队列头文件,文件名称seqqueue.h#defineTRUE1#defineFALSE0#defineMAXSIZE50/*队列的最大长度*/#defineQueueElementTypechartypedefstruct{QueueElementTypeelement[MAXSIZE];/*队列的元素空间*/intfront;/*头指针指示器*/intrear;/*尾指针指示器*/}
6、SeqQueue;/*初始化操作*/voidInitQueue(SeqQueue*Q){/*将*Q初始化为一个空的循环队列*/Q->front=Q->rear=0;}/*入队操作*/intEnterQueue(SeqQueue*Q,QueueElementTypex){/*将元素x入队*/if((Q->rear+1)%MAXSIZE==Q->front)/*队列已经满了*/return(FALSE);Q->element[Q->rear]=x;Q->rear=(Q->rear+1)%MAXSIZE;/*重新设置队尾指针*/return(TRUE);/*操作成功*/}/*出队操
7、作*/intDeleteQueue(SeqQueue*Q,QueueElementType*x){/*删除队列的队头元素,用x返回其值*/if(Q->front==Q->rear)/*队列为空*/return(FALSE);*x=Q->element[Q->front];Q->front=(Q->front+1)%MAXSIZE;/*重新设置队头指针*/return(TRUE);/*操作成功*/}intGetHead(SeqQueue*Q,QueueElementType*x){/*提取队列的队头元素,
此文档下载收益归作者所有