队列地入队出队初始化操作

队列地入队出队初始化操作

ID:41159288

大小:757.50 KB

页数:7页

时间:2019-08-17

队列地入队出队初始化操作_第1页
队列地入队出队初始化操作_第2页
队列地入队出队初始化操作_第3页
队列地入队出队初始化操作_第4页
队列地入队出队初始化操作_第5页
资源描述:

《队列地入队出队初始化操作》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实用文档实践考核题第一题设计报告书学生姓名 XXX学生学号099XXX所在地区XXX提交日期(年/月)2014/6实践题目利用队列的结构解决实际问题 需求分析 置空函数:根据函数的形参,即传递进来的队列指针,调用它的首指针和尾指针让两个指针相等,就把队列中的元素全部清空。入队函数:首先判断该队列是否已满,如果队列已满,就退出操作。否则,执行入队操作的语句,由于是循环队列所以在移动尾指针时,要把尾指针的位置取余运算(queue.rear=(queue.rear+1)%maxsize;),然后把数据元素赋给尾指针(queue,data[queue.rear]=x;

2、)。出队函数:当有数据元素要出队时,首先判断该队列是否为空,如果为空时,元素出队列失败。否则,当队列不为空时,执行出队操作(queue.front=(queue.front+1)%maxsize;)返回数值1,说明出队成功。判空函数:该函数是用来判断队列是否为空的,是被别的函数调用作为判断条件用,若果为空的话就返回数值0,标志不能继续执行下面的语句。判断为空的条件是:queue.rear==queue.front;如果为空返回值为1,否则返回值为0。概要设计1)置空setnull(queue)将队列queue置成空队列调用setnull(queue)函数把队列

3、queue的顶端指针和低端指针指向同一块地址,这样就把队列置空。当队列中的数据元素不用或者必须要清楚的时候,就必须调用该函数把队列中的数据清空才能在插入新的数据供用户操作使用。2)入队enqueue(queue,x)将元素x插入队列queue的尾部文案大全实用文档调用函数enqueue(queue,x),通过移动首指针找到要入队的数据,直到把队列的空间占满。有数据要进入队列时,调用该函数把数据元素x插入到队列中,先判断队列是否已满让后才能把数据元素插入到队尾。1)出队dequeue(queue)删除队列queue的队头元素,函数返回被删除元素的值通过移动首指针

4、把队首的指针往下移动一个地址,这样就把一个元素数据出队了。当要出队时,队列是从头指针开始一系列操作。先判断该队列是否为空队列,如果不是的话,在进行出队操作把头指针往上移一个地址,这样就把数据出队了。2)判队列是否为空EmptyQueue(queue)若队列que为空,函数返回0,否则返回1判断队列的为空的条件是(queue.rear==queue.front)如果为空返回数值1,否则返回0。当出队操作时,需要判断队列是否为空,调用该函数。 详细设计 #include//头文件//带头结点的循环链表表示队列#definemaxsize10typ

5、edefstruct{intdata[maxsize];intfront;intrear;}queue;//初始化队列文案大全实用文档queuesetnull(queueCQ){CQ.front=0;CQ.rear=0;returnCQ;}//判断队列是否为空intEmptyQueue(queueCQ){if(CQ.rear==CQ.front)//队列为空,返回1return1;elsereturn0;}//入队列queueenqueue(queueCQ,intx){if((CQ.rear+1)%maxsize==CQ.front){//队列空间已满prin

6、tf("queuefull");}else文案大全实用文档{//将尾指针后移CQ.rear=(CQ.rear+1)%maxsize;//并显示尾指针位置printf("seewhatCQ.rearis:%d",CQ.rear);//存入数据CQ.data[CQ.rear]=x;}returnCQ;//返回修改后的队列}//出队列queuedequeue(queueCQ){//判断队列是否为空if(EmptyQueue(CQ)){printf("spacequeue");}else{//记录将要清除的数据intx=CQ.data[(CQ.front+1)

7、%maxsize];//头指针后移CQ.front=(CQ.front+1)%maxsize;文案大全实用文档//输出清除掉的数据printf("thedeleteddata%d",x);}returnCQ;}//主函数intmain(){queueque;intx;//调用置空函数que=setnull(que);printf("pleaseputthedata(put999end):");for(inti=0;i<9;i++){//循环调用入队函数scanf("%d",&x);//限定结束符号if(x==999){printf("putdataen

8、d.");break;}else文

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。