6-1 另类循环队列

对带有元素数量个数变量count的队列

typedef int Position;
typedef struct QNode *PtrToQNode;
struct QNode {
    ElementType *Data;  /* 存储元素的数组   */
    Position Front;     /* 队列的头指针     */
    int Count;          /* 队列中元素个数   */
    int MaxSize;        /* 队列最大容量     */
};
typedef PtrToQNode Queue; 
Queue CreateQueue( int MaxSize )
{
    Queue Q = (Queue)malloc(sizeof(struct QNode));
    Q->Data = (ElementType *)malloc(MaxSize * sizeof(ElementType));
    Q->Front = 0;
    Q->Count = 0;
    Q->MaxSize = MaxSize;
    return Q;
}
bool AddQ( Queue Q, ElementType X ) {
	if(Q->Count>=Q->MaxSize)
    {
        printf("Queue Full\n");
        return false;
    }
 Q->Data[(Q->Front+Q->Count)%Q->MaxSize]=X;
 //出队以后front增加,所以不能直接用 Q->Data[(Q->Front)%Q->MaxSize];
 //同时用取余操作避免队列假满。
    Q->Count++;
    return true;
}
ElementType DeleteQ( Queue Q ) {
  if(Q->Count==0)
    {
        printf("Queue Empty\n");
        return ERROR;
    }  
  ElementType temp= Q->Data[Q->Front];
  Q->Front=(Q->Front+1)%Q->MaxSize;
  --Q->Count;
  return temp;
}
全部评论

相关推荐

10-24 00:54
已编辑
门头沟学院 Java
牛客20646354...:这连小厂都找不到就离谱,只能说可能你根本没投什么小厂。说实话现在都要11月了,没什么岗位了。其实最好是在9月找,那时候暑假工刚走,岗位多的是,现在都占满了岗位了,秋招的秋招,顶替暑假工的也基本上都顶替了。 只能多投了,简历其实都差不多,你这都不是外卖+点评去找实习了,已经比好多人优秀了。实在找不到,可以降低一些标准的,能投到自研项目的小厂说实话可能比你去中大厂能学到更多东西。因为中大厂最多给你看一点点模块功能,小厂基本上全部代码甚至几个项目的代码都能拿到。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务