user-0 提问: 循环队列入队出队（数据结构c语言）

回复:
user: user-1
content: C和C++完整教程:https://blog.csdn.net/it_xiangqiang/category_10581430.html C和C++算法完整教程:https://blog.csdn.net/it_xiangqiang/category_10768339.html

user: user-2
content: 引用 2 楼 ┍Æ ζざ 的回复:[quote=引用 楼主 ┍Æ ζざ的回复:]怎么写啊，各位大佬  我写了，不对[/quote] 贴代码吧，贴图片也不全呢，怎么知道哪里有问题。帮你也是无从下手～

user: user-0
content: 引用 10 楼 ┍Æ ζざ的回复:[quote=引用 9 楼 自信男孩的回复:][quote=引用 8 楼 ┍Æ ζざ 的回复:]感谢！麻烦帮我看看  我的代码发给你了，你自己看看。如果r, m超过2^31-1的话，可能会有问题  这也是我代码的一个小bug [/quote] 我没有看到代码啊！[/quote] 看到了，谢谢你

user: user-0
content: 引用 9 楼 自信男孩的回复:[quote=引用 8 楼 ┍Æ ζざ 的回复:]感谢！麻烦帮我看看  我的代码发给你了，你自己看看。如果r, m超过2^31-1的话，可能会有问题  这也是我代码的一个小bug [/quote] 我没有看到代码啊！

user: user-2
content: 引用 8 楼 ┍Æ ζざ 的回复:感谢！麻烦帮我看看  我的代码发给你了，你自己看看。如果r, m超过2^31-1的话，可能会有问题  这也是我代码的一个小bug

user: user-0
content: 感谢！麻烦帮我看看

user: user-0
content: 那个是函数题。我的代码如下： void EnQueue_seq(SeqQueue squeue, DataType x) {      SeqQueue *p;     p = (SeqQueue*)malloc(sizeof(SeqQueue));     if((p->r+1)%Max==p->f)         return 0;     p->r = x;     p->r = (p->r+1)%Max;     return 1;   } void DeQueue_seq(SeqQueue squeue) {     SeqQueue *p;     SeqQueue *q;     p = (SeqQueue*)malloc(sizeof(SeqQueue));     if(p->f==p->r)         return 0;     q = p->f;     p->f = (p->f+1)%Max;     return 1; } DataType FrontQueue_seq(SeqQueue squeue) {     SeqQueue *p;     int data[100];     p = (SeqQueue*)malloc(sizeof(SeqQueue));     if(!p)     {         printf("It is empty queue!");     }    return p->f;     if((p->r+1)%Max==p->f)         printf("It is FULL Queue!It is FULL Queue!p->f");      }

user: user-2
content: 你是写了不对？还是没写？函数体是@@这样算是不对？  #include <stdio.h> #include <stdlib.h>  typedef char DataType; struct Queue {     int Max;     int f;     int r;     DataType *elem; }; typedef struct Queue *SeqQueue;  SeqQueue SetNullQueue_seq(int m) {     SeqQueue squeue;     squeue = (SeqQueue)malloc(sizeof(struct Queue));     if (squeue == NULL)     {         printf("Alloc failure\n");         return NULL;     }     squeue->elem = (char*)malloc(sizeof(DataType)*m);     if (squeue->elem != NULL)     {         squeue->Max = m;         squeue->f = 0;         squeue->r = 0;         return squeue;     }      //add this     free(squeue);     return NULL; }  int IsNullQueue_seq(SeqQueue squeue) {     return (squeue->f == squeue->r); } void EnQueue_seq(SeqQueue squeue, DataType x) {     int pos, len;     if (squeue->f  < squeue->r)         return;     pos = squeue->f;     len = squeue->Max;      printf("%s--> r:%d, w:%d\n", __func__, squeue->r, squeue->f);     squeue->elem[pos%len] = x;     if (squeue->f + 1 < 0)         squeue->f = 0;     squeue->f += 1;  } void DeQueue_seq(SeqQueue squeue) {     int pos, len;     if (squeue->r >= squeue->f)         return;      pos = squeue->r;     len = squeue->Max;     DataType ch;      printf("%s--> r:%d, w:%d\n", __func__, squeue->r, squeue->f);     ch = squeue->elem[pos%len];     if (squeue->r + 1 < 0)         squeue->r = 0;     squeue->r += 1;     printf("%c\n", ch);     //@@ } DataType FrontQueue_seq(SeqQueue squeue) {     DataType ch;     int pos, len;      pos = squeue->r;     len = squeue->Max;     ch = squeue->elem[pos%len];      return ch;     //@@ }  int main() {     char ch;     SeqQueue queueA = SetNullQueue_seq(5);     ch = getchar();     while (ch != '#')     {         EnQueue_seq(queueA, ch);         ch = getchar();     }     DeQueue_seq(queueA);     printf("%c" ,FrontQueue_seq(queueA));      /*     DeQueue_seq(queueA);     DeQueue_seq(queueA);     DeQueue_seq(queueA);      printf("%c" ,FrontQueue_seq(queueA));     ch = getchar();     ch = getchar();     EnQueue_seq(queueA, ch);     DeQueue_seq(queueA);     printf("%c" ,FrontQueue_seq(queueA));     */     return 0; }

user: user-0
content: 引用 3 楼 自信男孩的回复:[quote=引用 2 楼 ┍Æ ζざ 的回复:][quote=引用 楼主 ┍Æ ζざ的回复:]怎么写啊，各位大佬  我写了，不对[/quote] 贴代码吧，贴图片也不全呢，怎么知道哪里有问题。帮你也是无从下手～[/quote] 本题要求实现队列的顺序存储表示，包括入队、出队和取队头操作 函数接口定义： void EnQueue_seq(SeqQueue squeue, DataType x)  ; void DeQueue_seq(SeqQueue squeue)  ; DataType FrontQueue_seq(SeqQueue squeue) ; 其中，squeue 是操作的队列，x是入队的元素 裁判测试程序样例：  #include <stdio.h> #include <stdlib.h> typedef char DataType; struct Queue {     int Max;       int f;        int r;       DataType *elem;  }; typedef struct Queue *SeqQueue;  SeqQueue SetNullQueue_seq(int m)  {     SeqQueue squeue;     squeue = (SeqQueue)malloc(sizeof(struct Queue));     if (squeue == NULL)     {         printf("Alloc failure\n");         return NULL;     }     squeue->elem = (char*)malloc(sizeof(DataType)*m);     if (squeue->elem != NULL)     {         squeue->Max = m;         squeue->f = 0;         squeue->r = 0;         return squeue;     } }  int IsNullQueue_seq(SeqQueue squeue)  {     return (squeue->f == squeue->r); } void EnQueue_seq(SeqQueue squeue, DataType x)   {     @@ } void DeQueue_seq(SeqQueue squeue)   {     @@ } DataType FrontQueue_seq(SeqQueue squeue)  {     @@ }  int main() {     char ch;     SeqQueue queueA = SetNullQueue_seq(5);     ch = getchar();     while (ch != '#')     {         EnQueue_seq(queueA, ch);         ch = getchar();     }     DeQueue_seq(queueA);     printf("%c" ,FrontQueue_seq(queueA));     return 0; } 输入样例： ABCD# 输出样例： B 输入样例： A# 输出样例： It is empty queue! 输入样例： ABCDEF# 输出样例： It is FULL Queue!It is FULL Queue!B

user: user-0
content: 引用 3 楼 自信男孩的回复:[quote=引用 2 楼 ┍Æ ζざ 的回复:][quote=引用 楼主 ┍Æ ζざ的回复:]怎么写啊，各位大佬  我写了，不对[/quote] 贴代码吧，贴图片也不全呢，怎么知道哪里有问题。帮你也是无从下手～[/quote] 本题要求实现队列的顺序存储表示，包括入队、出队和取队头操作 函数接口定义： void EnQueue_seq(SeqQueue squeue, DataType x)  ; void DeQueue_seq(SeqQueue squeue)  ; DataType FrontQueue_seq(SeqQueue squeue) ; 其中，squeue 是操作的队列，x是入队的元素 裁判测试程序样例：  #include <stdio.h> #include <stdlib.h> typedef char DataType; struct Queue {     int Max;       int f;        int r;       DataType *elem;  }; typedef struct Queue *SeqQueue;  SeqQueue SetNullQueue_seq(int m)  {     SeqQueue squeue;     squeue = (SeqQueue)malloc(sizeof(struct Queue));     if (squeue == NULL)     {         printf("Alloc failure\n");         return NULL;     }     squeue->elem = (char*)malloc(sizeof(DataType)*m);     if (squeue->elem != NULL)     {         squeue->Max = m;         squeue->f = 0;         squeue->r = 0;         return squeue;     } }  int IsNullQueue_seq(SeqQueue squeue)  {     return (squeue->f == squeue->r); } void EnQueue_seq(SeqQueue squeue, DataType x)   {     @@ } void DeQueue_seq(SeqQueue squeue)   {     @@ } DataType FrontQueue_seq(SeqQueue squeue)  {     @@ }  int main() {     char ch;     SeqQueue queueA = SetNullQueue_seq(5);     ch = getchar();     while (ch != '#')     {         EnQueue_seq(queueA, ch);         ch = getchar();     }     DeQueue_seq(queueA);     printf("%c" ,FrontQueue_seq(queueA));     return 0; } 输入样例： ABCD# 输出样例： B 输入样例： A# 输出样例： It is empty queue! 输入样例： ABCDEF# 输出样例： It is FULL Queue!It is FULL Queue!B

user: user-0
content: 引用 楼主 ┍Æ ζざ的回复:怎么写啊，各位大佬  我写了，不对

user: user-2
content: 先按照自己思路写写吧