- 1、本文档共7页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构第二次实验
姓名:常伟乐 学号:20111002312
--------------------------------------------------------------------------------------------------
一、循环队列基本操作
#includemalloc.h
#includestdio.h
#define OK 1
#define ERROR 0
typedef int Status; // Status
typedef int QElemType;
#define MAXQSIZE 100
typedef struct
{
QElemType *base;
int front;
int rear;
}SqQueue;
Status InitQueue(SqQueue Q)
{
Q.base = (QElemType *)malloc (MAXQSIZE * sizeof(QElemType));
if(!Q.base) return ERROR;
Q.front = Q.rear = 0;
return OK;
}
Status EnQueue(SqQueue Q,QElemType e)
{
if((Q.rear + 1)% MAXQSIZE == Q.front)return ERROR;
Q.base[Q.rear] = e ;
Q.rear = (Q.rear + 1) % MAXQSIZE;
return OK;
}
Status DeQueue(SqQueue Q, QElemType e)
{
if(Q.front == Q.rear) return ERROR;
e = Q.base[Q.front];
Q.front = (Q.front +1) % MAXQSIZE;
return OK;
}
Status GetHead(SqQueue Q, QElemType e)
{
if(Q.front == Q.rear) return ERROR;
e = Q.base[Q.front];
return OK;
}
int QueueLength(SqQueue Q)
{
return (Q.rear + MAXQSIZE - Q.front) % MAXQSIZE;
}
Status QueueTraverse(SqQueue Q)
{
int i;
i=Q.front;
if(Q.front == Q.rear)printf(The Queue is Empty!); else{
printf(The Queue is: );
while(i Q.rear) {
printf(%d ,Q.base[i]);
i = i+1; }
}
printf(\n);
return OK;
}
int main()
{
int a;
SqQueue S;
QElemType x, e;
if(InitQueue(S))
{
printf(A Queue Has Created.\n);
}
while(1)
{
printf(1:Insert \n2:Delete \n3:Get the Front \n4:Return the Length of the Queue\n5:Load the Queue\n0:Exit\nPlease choose:\n);
scanf(%d,a);
switch(a)
{
case 1:printf(the elem is:\n);
scanf(%d, x);
if(!EnQueue(S,x)) printf(Enter Error!\n);
else printf(The Element %d has Successfully Entered!\n, x);
break;
case 2: if(!DeQueue(S,e)) printf(Delete Error!\n);
else printf(The Element %d is Successfully Deleted!\n, e);
break;
case 3: if(!GetHead(S,e))printf(Get Head Error!\n);
else printf(The Head of the Queue is %d!\n, e);
brea
您可能关注的文档
- 5.4(正态总体下常用统计量的一些重要结论).ppt
- 22章第一节烧伤2015.11.30-12.1非临床.ppt
- 2013给排水考试预测试题及答案(含11套).doc
- 2015-12胸部损伤.ppt
- 073112 李壮壮.doc
- 20130825【张工培训】公开课之历年注册考试题目(给水专业)分类.pdf
- Chap1-1 嵌入式.ppt
- lbk-2015年脊柱骨折与脊髓损伤本科.ppt
- PPT 4:第四节 冠心病.ppt
- Word 操作题真题汇总.doc
- DB12 046.89-2011 产品单位产量综合电耗计算方法及限额 第89部分:手机 .docx
- DB12 046.88-2011 产品单位产量综合电耗计算方法及限额 第88部分:晶振 .docx
- DB12T 419-2010 无公害农产品 核桃栽培管理技术规范 .docx
- DB12T 417-2010 沙化和荒漠化监测技术规程.docx
- DB12T 449-2011 民用建筑四防门通用技术条件.docx
- DB12 046.100-2011 产品单位产量综合能耗计算方法及限额 第100部分: 果汁饮料 .docx
- DB12T 427-2010 葱姜蒜中205种农药多残留测定方法-GCMS法.docx
- DB12T 421-2010 有机农产品 甘薯有机栽培技术规范.docx
- DB12T 426-2010 蔬菜水果中205种农药多残留测定方法-GCMS法 .docx
- 《老年人身体康复》精品课件——项目6 中国传统康复技术.pptx
文档评论(0)