队列循环入队的代码。

1.数据元素是整型数据。
2. 基于顺序存储的循环队列实现以下几个基本操作: EnterQueue, DeleteQueue
3. 要求在main函数里按如下要求运行:
(1)1,2,3入队列
(2)显示队列
(3)1,2出队
(4)显示队列
(5)4,5,6入队列
(6)显示队列
(7)3,4出队
(8)显示队列
(9)7,8,9入队列
(10)显示队列
(11)10入队列

#include
#define  TRUE 1
#define  FALSE 0
#define  QueueElementType int

#define MAXSIZE 50  /*队列的最大长度*/

typedef struct
{
    QueueElementType  element[MAXSIZE];  /* 队列的元素空间*/
    int front;  /*头指针指示器*/
    int rear;  /*尾指针指示器*/
}SeqQueue;


/*初始化操作*/
void InitQueue(SeqQueue *Q)
{  
    /* 将*Q初始化为一个空的循环队列 */
    Q->front=Q->rear=0;
}

/*入队操作*/
int EnterQueue(SeqQueue *Q, QueueElementType x)
{  
    
}

/*出队操作*/
int DeleteQueue(SeqQueue *Q, QueueElementType *x)
{ 
    
}

int GetHead(SeqQueue *Q, QueueElementType *x)
{ 
    /*提取队列的队头元素,用x返回其值*/
    if(Q->front==Q->rear)  /*队列为空*/
        return(FALSE);
    *x=Q->element[Q->front];
    return(TRUE);  /*操作成功*/
}

int IsEmpty(SeqQueue *Q)
{ 
    /*提取队列的队头元素,用x返回其值*/
    if(Q->front==Q->rear)  /*队列为空*/
        return(TRUE);
    else
        return(FALSE);  /*操作成功*/
}
void PrintQueue(SeqQueue *Q)
{
    QueueElementType  f; 
    f=Q->front; 
    while(f!=Q->rear)
    {
        printf("%5d",Q->element[f]);
        f=(f+1)% MAXSIZE;
    }
}
/*PrintList*/
int main()
{
    SeqQueue q;
    int e;
    InitQueue(&q);
    
    return 0;

}

#include<stdio.h>
#include<stdlib.h>

#define TRUE 1
#define FALSE 0
#define MAXSIZE 10

typedef int ElemType;
typedef struct{
    ElemType data[MAXSIZE];
    int front, rear; // 队头指针和队尾指针
} SeqQueue;

// 初始化队列
void InitQueue(SeqQueue *q) {
    q->front = q->rear = 0;
}

// 入队操作
int EnterQueue(SeqQueue *q, ElemType x) {
    if ((q->rear + 1) % MAXSIZE == q->front) { // 队列已满
        return FALSE;
    }
    q->data[q->rear] = x;
    q->rear = (q->rear + 1) % MAXSIZE;
    return TRUE;
}

// 出队操作
int DeleteQueue(SeqQueue *q, ElemType *x) {
    if (q->front == q->rear) { // 队列为空
        return FALSE;
    }
    *x = q->data[q->front];
    q->front = (q->front + 1) % MAXSIZE;
    return TRUE;
}

// 获取队头元素
int GetHead(SeqQueue *q, ElemType *x) {
    if (q->front == q->rear) { // 队列为空
        return FALSE;
    }
    *x = q->data[q->front];
    return TRUE;
}

// 判断队列是否为空
int IsEmpty(SeqQueue *q) {
    if (q->front == q->rear) { // 队列为空
        return TRUE;
    }
    return FALSE;
}

// 打印队列元素
void PrintQueue(SeqQueue *q) {
    int i = q->front;
    while (i != q->rear) {
        printf("%d ", q->data[i]);
        i = (i + 1) % MAXSIZE; // 循环遍历
    }
}

int main() {
    SeqQueue q;
    int i, e;

    // (1) 1,2,3入队列
    InitQueue(&q);
    EnterQueue(&q, 1);
    EnterQueue(&q, 2);
    EnterQueue(&q, 3);

    // (2) 显示队列
    printf("队列元素为:");
    PrintQueue(&q);
    printf("\n");

    // (3) 1,2出队
    DeleteQueue(&q, &e);
    DeleteQueue(&q, &e);

    // (4) 显示队列
    printf("队列元素为:");
    PrintQueue(&q);
    printf("\n");

    // (5) 4,5,6入队列
    EnterQueue(&q, 4);
    EnterQueue(&q, 5);
    EnterQueue(&q, 6);

    // (6) 显示队列
    printf("队列元素为:");
    PrintQueue(&q);
    printf("\n");

    // (7) 3,4出队
    DeleteQueue(&q, &e);
    DeleteQueue(&q, &e);

    // (8) 显示队列
    printf("队列元素为:");
    PrintQueue(&q);
    printf("\n");

    // (9) 7,8,9入队列
    EnterQueue(&q, 7);
    EnterQueue(&q, 8);
    EnterQueue(&q, 9);

    // (10) 显示队列
    printf("队列元素为:");
    PrintQueue(&q);
    printf("\n");

    // (11) 10入队列
    EnterQueue(&q, 10);

    // (12) 显示队列
    printf("队列元素为:");
    PrintQueue(&q);
    printf("\n");

    return 0;
}


不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^