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;
}
全部评论

相关推荐

03-03 23:12
已编辑
北京邮电大学 Java
书海为家:我来给一点点小建议,因为毕竟还在学校不像工作几年的老鸟有丰富的项目经验,面试官在面试在校生的时候更关注咱们同学的做事逻辑和思路,所以最好在简历中描述下自己做过项目的完整过程,比如需求怎么来的,你对需求的解读,你想到的解决办法,遇到困难如何找人求助,最终项目做成了什么程度,你从中收获了哪些技能,你有什么感悟。
你的简历改到第几版了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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