使用C语言来解决循环队列问题的方法

2020-01-06 13:42:44王旭
  • {   printf("failedn");  
  • }   }  
  •   /**  
  • * Description:出队操作   */ 
  • void Dequeue(struct queue *Q, int m)   {  
  • int flag;   int element;  
  •   flag = (Q -> count == 0)? 1 : 0;  
  •   if(!flag)  
  • {   element = Q -> data[Q -> front];  
  • Q -> front = (Q -> front + 1) % m;   Q -> count --;  
  • }else  {  
  • printf("failedn");   }  
  • }    
  • /**   * Description:查找队列中的指定元素  
  • */  void QueueSearch(struct queue *Q, int k, int m)  
  • {   int flag, temp;  
  • flag = (Q -> count == 0)? 1: 0;   temp = Q -> front + k - 1;  
  • if((!flag) && (k <= m && k >= 1))   {  
  • if((Q -> front < Q -> rear) && ( Q-> front <= temp && Q -> rear > temp))   printf("%dn",Q -> data[temp]);  
  • else if((Q -> front > Q -> rear) && (temp >= Q -> front || temp < Q->rear))   printf("%dn",Q -> data[temp]);  
  • else if(Q -> front == Q -> rear)   printf("%dn",Q -> data[temp]);  
  • else  printf("failedn");  
  • }else  {  
  • printf("failedn");   }  
  • }