- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构队列的顺序表示和实现C语言演示
/*
队列的顺序表示和实现
*/
# include stdio.h
# include malloc.h
//定义机构体
typedef struct Queue
{
int * pBash; //存放数组
int front; //队列第一个元素下标
int rear; //队列最后一个元素的下一个元素的下标
}QUEUE,* PQUEUE;
//函数的前置声明
void init(PQUEUE); //初始化队列
bool en_queue(PQUEUE,int); //入队
void traverse_queue(PQUEUE); //遍历队列
bool full_queue(PQUEUE); //判断队列是否已满
bool empty_queue(PQUEUE); //判断队列是否是空
bool out_queue(PQUEUE ,int *); //出队
int main(void)
{
QUEUE queue;
int val;
//初始化队列
init(queue);
//入队一个元素
printf(入队6个元素\n);
en_queue(queue,1);
en_queue(queue,2);
en_queue(queue,3);
en_queue(queue,4);
en_queue(queue,5);
en_queue(queue,6);
//遍历这个队列
printf(查看队列元素\n);
traverse_queue(queue);
//一个元素出队
if(out_queue(queue, val))
{
printf(一个元素出队,值为%d\n,val);
}
else{
printf(出栈失败!);
}
//遍历这个队列
printf(查看队列元素\n);
traverse_queue(queue);
return 0;
}
//初始化队列
void init(PQUEUE queue)
{
queue - pBash = (int *)malloc(sizeof(int) * 6);
queue - front = 0;
queue - rear = 0;
}
//入队一个元素
bool en_queue(PQUEUE queue, int val)
{
//判断队列是否已满
if( full_queue(queue) )
{
printf(队列已满,不能加入元素\n);
return false;
}
/*
此处出现严重错误
原错误代码: queue - pBash[queue-front] = val;
这样做的结果是,所有进入队列元素,都会替换掉队首元素
正确的写法是:
queue - pBash[queue-rear] = val;
*/
queue - pBash[queue-rear] = val;
queue - rear = (queue - rear + 1)%6;
return true;
}
//判断队列是否已满
bool full_queue(PQUEUE queue)
{
if( queue - front == (queue - rear + 1)%6)
{
return true;
}
else{
return false;
}
}
//遍历这个队列
void traverse_queue(PQUEUE queue)
{
int i;
i = queue-front;
while(i != queue - rear)
{
printf(%d , queue-pBash[i]);
i = (i+1)%6;
}
printf(\n);
return;
}
//判断队列是否是空
bool empty_queue(PQUEUE queue)
您可能关注的文档
- WebSphere MQ Quick Proposal中文版.doc
- 备战2011高考英语各地模拟题分类汇编_完形填空议论文篇.doc
- 高考外研版 练习题 选修7.docx
- 工程招投标与索赔管理.doc
- 湖南省新化二中2015-2016学年高二上学期10月月考英语试卷.doc
- 小学英语教学论在线作业.doc
- SAP_QM快速入门.doc
- western culture 西方文化.doc
- weblogic10在控制台下配置jms消息服务.docx
- QuickKnowledge系统需求分析说明书.docx
- [专精特新]金华永和氟化工有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]重庆升光电力印务有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]无锡巨力重工股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]江西凯安新材料集团股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]浙江永昌电气股份有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]苏州中创铝业有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]杭州汽轮铸锻有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]浙江美声智能系统有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]汕头市虹桥包装实业有限公司行业竞争力评级分析报告(2023版).pdf
- [专精特新]江西亚中电子科技股份有限公司行业竞争力评级分析报告(2023版).pdf
最近下载
- 江苏省2021年中学生生物学奥林匹克初赛理论试题答案.doc
- 2025年哈尔滨应用职业技术学院单招语文测试题库附答案.docx VIP
- 2025年安徽水利水电职业技术学院高职单招职业技能测试近5年常考版参考题库含答案解析.docx
- 【道氏理论】(完全版).doc
- 分娩镇痛的现状和临床应用课件.ppt
- 学科中心教研组管理方案.docx VIP
- 五年级下册数学单元测试-3长方体和正方体 人教版(含答案).docx
- 2024年安徽水利水电职业技术学院单招职业技能测试题库(考试直接用).docx VIP
- 23S516 混凝土排水管道基础及接口图集.docx VIP
- 数控系统(CNC)系列:Fanuc 31i-B_(6).G代码和M代码详解.docx
文档评论(0)