数据结构-循环队列(数组)

mac2022-06-30  23

头文件和结点定义

初始化

判空

入队

入队方式一

入队方式二

出队

出队方式一

出队方式二

#include<stdio.h> #include<stdlib.h> #define MaxSize 4 typedef int ElemType; typedef struct { ElemType data[MaxSize];//该队列可以存储 MaxSize-1 个元素 int front, rear; }SqQueue;//循环队列(数组) void InitQueue(SqQueue& Q) { Q.front = Q.rear = 0; } bool IsEmpty(SqQueue Q) { if (Q.front == Q.rear) return true; else return false; } //入队 bool EnQueue(SqQueue& Q, ElemType elem) { if ((Q.rear + 1) % MaxSize == Q.front) return false; Q.rear = (Q.rear + 1) % MaxSize; Q.data[Q.rear] = elem; return true; } //出队 bool DeQueue(SqQueue& Q, ElemType& elem) { if (Q.front == Q.rear) return false; Q.front = (Q.front + 1) % MaxSize; elem = Q.data[Q.front]; return true; } int main() { SqQueue Q; ElemType elem; InitQueue(Q); if (IsEmpty(Q)) printf("队列为空\n"); else printf("队列不空\n"); if (DeQueue(Q, elem)) printf("出队元素为:%d\n", elem); else printf("出队失败\n"); EnQueue(Q, 5); EnQueue(Q, 4564); EnQueue(Q, 11231); EnQueue(Q, 77); if (DeQueue(Q, elem)) printf("出队元素为:%d\n", elem); else printf("出队失败\n"); if (DeQueue(Q, elem)) printf("出队元素为:%d\n", elem); else printf("出队失败\n"); if (IsEmpty(Q)) printf("队列为空\n"); else printf("队列不空\n"); return 0; }

最新回复(0)