Chinaunix

标题: 循环队列存放字符串 [打印本页]

作者: zy604863141    时间: 2011-11-28 22:48
标题: 循环队列存放字符串
严蔚敏《数据结构》中讲述循环队列时, 是以存放整型来讲的,但我想把它改成存放长度为1472字节的字符串应该怎么改???

  1. #define MAXQSIZE 6
  2. typedef int Status;
  3. typedef int QElemType;
  4. typedef struct{
  5.             QElemType *base;
  6.                 int front;
  7.                 int rear;}SqQueue;
  8. Status InitQueue (SqQueue *Q){/*构造一个空队列Q*/
  9.         Q->base =(QElemType *)malloc(MAXQSIZE *sizeof(QElemType));
  10.         if(!Q->base)exit(OVERFLOW);
  11.         Q->front =Q->rear =0;
  12.         return OK;}
复制代码

作者: zy604863141    时间: 2011-11-28 22:49
自己顶一个
作者: bruceteen    时间: 2011-11-29 08:15
你把
typedef int QElemType;
改为
typedef struct{char str[1472];} QElemType;
试试看
作者: Rhyttr    时间: 2011-11-30 17:33
直接重定义QElemType并不行,数据类型变了,入队和出对中的数据操作也要改

我也遇到此问题,就是怎样用C语言实现可自定义数据类型的循环队列?
作者: huxk    时间: 2011-12-01 09:14
泛化。蛋疼很。
作者: keytounix    时间: 2011-12-01 10:04
回复 1# zy604863141


#define MAXQSIZE 1472
typedef int Status;

typedef int QElemType;

typedef struct{

            QElemType *base;

                int front;

                int rear;
                int  count;//这个是用来计数的,什么严蔚敏卫生金都是浮云,理解掌握和应用原理才是王道

}SqQueue;

int init_squeue(SqQueue *sqque)
{
   sqque->base=(QElemType*)malloc(MAXQSIZE*sizeof(int));
。。。。。

}
作者: Rhyttr    时间: 2011-12-01 13:20
正在学习用C实现的范型容器(纯MACRO实现)
http://bbs.chinaunix.net/viewthr ... hlight=%B7%B6%D0%CD




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2