数据结构上机实践第七周项目3 - 负数把正数赶出队列

负数把正数赶出队列


使用本文所用的环形队列的算法库(sqqueue.h),点击此处参考

实现源代码如下:

main.cpp

[cpp]  view plain  copy
  1.  
  2.    
  3. *问题描述:设从键盘输入一整数序列a1,a2,…an,试编程实现:当ai>0时,ai进队,当ai<0时,将队首元素出队,当ai=0时,表示输入结束。要求将队列处理成环形队列,使用算法库中定义的数据类型及算法,程序中只包括一个函数(main函数),入队和出队等操作直接写在main函数中即可。当进队出队异常(如队满)时,要打印出错信息。   
  4.    
  5. *输入描述:ai,ai=0时结束输入   
  6.    
  7. *程序输出:元素进队出队情况   
  8.    
  9. */      
  10. #include <stdio.h>      
  11. #include "sqqueue.h"      
  12. int main()      
  13. {      
  14.     SqQueue *q;      
  15.     ElemType e;      
  16.     int ai;                                         //类型置为整型,便于调用scanf完成输入      
  17.       
  18.     while(1)                                        //while(1)设置多组输入      
  19.     {      
  20.         InitQueue(q);                               //初始化队列      
  21.         while(scanf("%d",&ai)!=EOF)                 //ai不为0,进入循环      
  22.         {      
  23.             if(ai==0)      
  24.                 break;      
  25.             else if(ai>0)      
  26.             {      
  27.                 if(enQueue(q,ai)==0)                //ai>0且队不满,ai进队      
  28.                     printf("队已满,进队失败!\n");      
  29.                 else      
  30.                     printf("元素%d已进队\n",ai);      
  31.             }      
  32.             else      
  33.             {      
  34.                 if(deQueue(q,e)==0)                 //ai<0且队不为空,队首元素出队      
  35.                     printf("队已空,出队失败!\n");      
  36.                 else      
  37.                     printf("队首元素%d已出队\n",e);      
  38.             }      
  39.         }      
  40.         printf("\n");      
  41.     }      
  42.     return 0;      
  43. }          


运行结果截图如下:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值