循环队列思考总结

上传人:bin****86 文档编号:60024600 上传时间:2018-11-13 格式:DOCX 页数:15 大小:19.32KB
返回 下载 相关 举报
循环队列思考总结_第1页
第1页 / 共15页
循环队列思考总结_第2页
第2页 / 共15页
循环队列思考总结_第3页
第3页 / 共15页
循环队列思考总结_第4页
第4页 / 共15页
循环队列思考总结_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《循环队列思考总结》由会员分享,可在线阅读,更多相关《循环队列思考总结(15页珍藏版)》请在金锄头文库上搜索。

1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划循环队列思考总结数据结构实验报告姓名:方钢学号:XX5567专业:电子商务班级:101班指导教师:实验时间:实验地点:新区实验楼四楼循环队列1.实验内容和要求实验要求本次实验中,队列使用顺序结构循环队列;结构定义和运算实验放入库文件“”中;各运算和变量命名直观易懂,并有相应的注释。实验内容初始化一个队列。判断是否队空。判断是否队满。入队出队取队头元素求当前队列中元素个数编写算法实现初始化空循环队列;当键盘输入奇数时,此奇数入队;当键盘输入偶数时,队头出队;当键盘输入0时,算法退出;每

2、当键盘输入后,输出当前队列中的所有元素2.实验目的掌握队列的基本概念。掌握循环队列的建立、入队和出队等方法。根据具体问题的需要,设计出合理的表示数据的结构,并设计相关算法。3.算法设计初始化一个队列。判断是否队空。判断是否队满。入队出队取队头元素求当前队列中元素个数算法:intmain(intargc,char*argv)seqQueueL;elementTypex;intk,m,n;initQueue(&L);/初始化顺序循环队列if(queueEmpty(L)/判断空队列coutx;if(x=0;m-)break;x=m;cout编写算法实现初始化空循环队列;当键盘输入奇数时,此奇数入队;

3、当键盘输入偶数时,队头出队;当键盘输入0时,算法退出;每当键盘输入后,输出当前队列中的所有元素算法:intmain(intargc,char*argv)seqQueueL;elementTypex;initQueue(&L);/初始化顺序循环队列if(queueEmpty(L)/判断空队列coutx;while(x!=0)if(x%2!=0)enQueue(&L,x);elseoutQueue(&L);coutear)coutx;while(x=0)cout#include#defineMAXSIZE5typedefintdatatype;/*/*定义队列结构体*/*/typedefstruc

4、tdatatypeaMAXSIZE;intfront;/队首intrear;/队尾sequence_queue;/*/*初始化函数*/*/voidinit(sequence_queue*p)/*/*判断是否为空队列*/*/intis_empty(sequence_queue*p)/*/*判断是否为空队列*/*/voiddisplay_queue(sequence_queue*p)/*/*插入函数,只能从队尾插入*/*/inti;if(is_empty(p)/如果是空队列elseif(p-frontp-rear)/判断队首是否大于队尾for(i=p-front;irear+MAXSIZE);i+

5、)printf(%d,p-ai%MAXSIZE);for(i=p-front;irear;i+)printf(%dt,p-ai);elseprintf(n顺序队列是空的!n);exit(1);return(p-front=p-rear)?1:0;p-front=p-rear=0;voidinsert_queue(sequence_queue*p,datatypex)/*/*删除函数*/*/voiddele_queue(sequence_queue*p)/*/*主函数*/*/intmain()while(flag)printf(请输入要插入的数!n);scanf(%d,&x);insert_qu

6、eue(&sp,x);sequence_queuesp;intx,flag=1;init(&sp);/初始化if(is_empty(p)/如果是空队列p-front=(p-front+1)%MAXSIZE;printf(n顺序队列是空的!n);exit(1);p-ap-rear=x;p-rear=(p-rear+1)%MAXSIZE;if(p-rear+1)%MAXSIZE=p-front)printf(队列已满!n);exit(1);/插入printf(是否继续插入!继续插入(1),退出插入(0)n);scanf(%d,&flag);display_queue(&sp);/显示printf(

7、n删除第一个数后n);display_queue(&sp);dele_queue(&sp);/删除六、实验数据及处理结果七、思考讨论题或体会或对改进实验的认识八、参考资料1数据结构,李云清,人民邮电出版社2C语言程序设计,苏小红,高等教育出版社实验报告实验二堆栈和队列实验目的:1.熟悉栈这种特殊线性结构的特性;2.熟练并掌握栈在顺序存储结构和链表存储结构下的基本运算;3.熟悉队列这种特殊线性结构的特性;3.熟练掌握队列在链表存储结构下的基本运算。实验原理:堆栈顺序存储结构下的基本算法;堆栈链式存储结构下的基本算法;队列顺序存储结构下的基本算法;队列链式存储结构下的基本算法;实验内容:3-18链

8、式堆栈设计。要求用链式堆栈设计实现堆栈,堆栈的操作集合要求包括:初始化StackInitiate,非空否StackNotEmpty(S),入栈StackiPush(S,x),出栈StackPop,取栈顶数据元素StackTop(S,d);设计一个主函数对链式堆栈进行测试。测试方法为:依次把数据元素1,2,3,4,5入栈,然后出栈并在屏幕上显示出栈的数据元素;定义数据元素的数据类型为如下形式的结构体,TypedefstructchartaskName10;inttaskNo;DataType;首先设计一个包含5个数据元素的测试数据,然后设计一个主函数对链式堆栈进行测试,测试方法为:依次吧5个数据

9、元素入栈,然后出栈并在屏幕上显示出栈的数据元素。3-19对顺序循环队列,常规的设计方法是使用対尾指针和对头指针,对尾指针用于指示当前的対尾位置下标,对头指针用于指示当前的対头位置下标。现要求:设计一个使用对头指针和计数器的顺序循环队列抽象数据类型,其中操作包括:初始化,入队列,出队列,取对头元素和判断队列是否为空;编写一个主函数进行测试。实验结果:3-18typedefstructsnodeDataTypedata;structsnode*next;LSNode;/*初始化操作:*/voidStackInitiate(LSNode*head)/*初始化带头结点链式堆栈*/if(*head=(L

10、SNode*)malloc(sizeof(LSNode)=NULL)exit(1);(*head)-next=NULL;/*判非空操作:*/intStackNotEmpty(LSNode*head)/*判堆栈是否非空,非空返回1;空返回0*/if(head-next=NULL)return0;elsereturn1;/*入栈操作:*/intStackPush(LSNode*head,DataTypex)/*把数据元素x插入链式堆栈head的栈顶作为新的栈顶*/LSNode*p;if(p=(LSNode*)malloc(sizeof(LSNode)=NULL)printf(内存空间不足无法插入!

11、n);return0;p-data=x;p-next=head-next;/*新结点链入栈顶*/head-next=p;/*新结点成为新的栈顶*/return1;/*出栈操作:*/intStackPop(LSNode*head,DataType*d)/*出栈并把栈顶元素由参数d带回*/LSNode*p=head-next;if(p=NULL)printf(堆栈已空出错!);return0;head-next=p-next;/*删除原栈顶结点*/*d=p-data;/*原栈顶结点元素赋予d*/free(p);/*释放原栈顶结点内存空间*/return1;/*取栈顶数据元素操作:*/intStackTop(LSNode*head,DataType*d)/*取栈顶元素并把栈顶元素由参数d带回*/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 总结/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号