注册 登录
编程论坛 数据结构与算法

求指教谢谢,建立循环队列并输出,插入元素并输出队列

晨簌馨 发布于 2015-05-02 19:50, 2396 次点击
#include<stdio.h>
#include<stdlib.h>
#define MAXSIZE 10
typedef struct
{
  int elem[MAXSIZE];
  int front;
  int rear;
}Queue;
void inputqueue(Queue Q,int elem[]);
void outputqueue(Queue Q,int elem[]);
int insertqueue(Queue Q,int elem[],int x);
int main()
{
   int x;
   int elem[MAXSIZE];
   Queue Q;
   Q.front=Q.rear=0;
   inputqueue(Q,elem);
   outputqueue(Q,elem);
   insertqueue(Q,elem,x);
   return 0;
}
void inputqueue(Queue Q,int elem[])
{
   int i=0;
   printf("input queue element<eng of -99>:");
   do
   {
     scanf("%d",&elem[i]);
     if(elem[i]==-99)
          break;
         i++;
   }while(i<MAXSIZE);
}
void outputqueue(Queue Q,int elem[])
{
    int i;
    printf("\n输出:");
    for(i=0;i<MAXSIZE;i++)
    {
       if(elem[i]==-99)
         break;
           printf("%d ",elem[i]);
    }
    printf("\n");
}
int insertqueue(Queue Q,int elem[],int x)
{
     int k;
     int i;
     if((Q.rear+1)%MAXSIZE==Q.front)
    printf("\n队列满!");
     else
     {
       printf("insert?1/0 ");
       scanf("%d",&k);
       if(k==1)
       {
           printf("\ninput insert element:");
           scanf("%d",&x);
        Q.elem[Q.rear]=x;
            Q.rear=(Q.rear+1)%MAXSIZE;
                     printf("\ninsert successful!");
                  printf("\nqueue element are:");
           for(i=0;i<MAXSIZE+1;i++)
          {
               
            if(elem[i]==-99)
          break;
          printf("%d ",elem[i]);
           }
                printf("\n");
        }
      
      }
   return 1;
}
想要把X插入队列并输出可是输不进去输出的队列不包含X
只有本站会员才能查看附件,请 登录
1 回复
#2
林月儿2015-05-06 13:08
#include<stdio.h>
#define MAXSIZE 10
typedef struct
{
    int count;
    int elem[MAXSIZE];
    int front;
    int rear;
}Queue;
bool insertqueue(Queue &Q,int data){
    if(Q.count==MAXSIZE)
    return false;
    Q.elem[Q.rear]=data;
    Q.rear=(Q.rear+1)%MAXSIZE;
    Q.count++;
    return true;
}
void outputqueue(Queue Q)
{
    int i;
    printf("\n输出:");
    for(i=Q.front;i<Q.rear;i++)
        printf("%d ",Q.elem[i]);
    printf("\n");
}

void inputqueue(Queue &Q)
{
   int i=0,data;
   printf("input queue element<eng of -99>:");
   do
   {
     scanf("%d",&data);
     if(data==-99)
          break;
    insertqueue(Q,data);
         i++;
   }while(i<MAXSIZE);
}
 
int main()
{
    int x;
   Queue Q;
   Q.front=Q.rear=0;
   inputqueue(Q);
   outputqueue(Q);
   printf("请输入插入队列的数");
   scanf("%d",&x);
   insertqueue(Q,x);
   outputqueue(Q);
   return 0;
}
1