- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
循环队列的基本操作
实验四 循环队列的基本操作
实验目的:
1、熟悉将算法转换成程序代码的过程。
2、了解单循环队列的逻辑结构特性,熟练掌握循环队列顺序存储结构的C 语言描述方法。
3、熟练掌握循环队列的基本操作:入队、出队等,掌握循环队列的存取特性。
实验内容:
1、分别建立包含6个数据元素的循环队列;
2、从键盘输入一个数据元素x,进行入队操作;
3、获取队头元素的值;
4、对循环队列进行出队操作;
5、打印循环队列元素和队列长度;
6、给出程序及各项操作结果。
实验步骤:
#include stdio.h
#include malloc.h
#include stdlib.h
#define MAXSIZE 100 /*队列的最大容量*/
typedef int DataType;
typedef struct {
DataType data[MAXSIZE]; /*队列的存储空间*/
int front, rear; /*队头队尾指针*/
}SeqQueue,*PSeqQueue;
PSeqQueue Init_SeqQueue( )
{ /*初始化一新队列,入口参数:无,返回值:新顺序队列指针,null表示失败*/
PSeqQueue Q;
Q=( PSeqQueue )malloc(sizeof(SeqQueue));
if (Q)
{
Q-front=0;
Q-rear=0;
printf(置空队列成功!);
}
return Q;
}
void Destroy_SeqQueue(PSeqQueue *Q)
{ /*销毁一队列,入口参数:要销毁的顺序队列指针的地址,返回值:无*/
if (*Q)
free(*Q);
*Q=NULL;
}
int Empty_SeqQueue(PSeqQueue Q)
/*判断队列是否为空,入口参数:顺序队列,返回值:1表示为空,0表示非空*/
{ if (Q Q-front==Q-rear)
return (1);
else
return (0);
}
int QueueLength (PSeqQueue Q)
{
学生自己写
}//返回Q的元素个数,即队列的长度
int In_SeqQueue ( PSeqQueue Q , DataType x)
/*入队操作,入口参数:顺序队列和待入队元素x ,返回值:1表示成功,-1表示队满溢出*/
{ if ((Q-rear+1)%MAXSIZE==Q-front)
{ printf(队满);
return -1; /*队满不能入队*/
}
else
{ Q-rear=(Q-rear+1) % MAXSIZE;
Q-data[Q-rear]=x;
return 1; /*入队完成*/
}
}
int Out_SeqQueue (PSeqQueue Q,DataType *x)
{ /*出队操作,入口参数:顺序队列,返回值:1表示成功,-1表示队空,出队的元素保存到*x */
if (Empty_SeqQueue(Q))
{
printf(队空);
return -1; /*队空不能出队*/
}
else
{ Q-front=(Q-front+1) % MAXSIZE;
*x=Q-data[Q-front];
return 1; /*出队完成*/
}
}
int Front_SeqQueue(PSeqQueue Q ,DataType *x)
{ /*取队头元素,入口参数:顺序队列和取出元素存放地址,返回值:1表示成功,
-1表示队空*/
if (Q-front==Q-rear)
{
printf(队空);
return -1; /*队空不能得到队头元素*/
}
else
{ *x=Q-data[(Q-front+1)%MAXSIZE];
return 1; /*取队头元素操作完成*/
}
}
void display(PSeqQueue S)
{
学生填写
}
void main()
{
(由学生填写)
}
实验用测试数据和相关结果分析:(由学生填写)
实验总结:(由学生填写)
文档评论(0)