队列(Queue)顺序存储C语言实现
队列(Queue))顺序存储C语言实现
#define ERROR -1 typedef int ElemType; typedef int Position; typedef struct QNode* Queue; typedef struct QNode{ ElemType*data; Position front; Position rear; int maxSize; }; Queue CreateQueue(int maxSize){ Queue Q = (Queue)malloc(sizeof(struct QNode)); Q->data = (ElemType*)malloc(sizeof(ElemType)*(maxSize+1)); Q->front = 0; Q->rear = 0; Q->maxSize = maxSize + 1; return Q; } void DestroyQueue(Queue Q) { if (Q) { if(Q->data){ free(Q->data); } free(Q); } } int IsFullQueue(Queue Q){ return (Q->front == (Q->rear + 1) % Q->maxSize); } void Enqueue(Queue Q, ElemType item) { if (IsFullQueue(Q)) { return; } Q->rear = (Q->rear + 1) % Q->maxSize; Q->data[Q->rear] = item; } int IsEmptyQueue(Queue Q){ return ( Q->front == Q->rear ); } ElemType Dequeue(Queue Q){ if (IsEmptyQueue(Q)){ return ERROR; } Q->front = (Q->front + 1) % Q->maxSize; return Q->data[Q->front]; }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步