首页 > 代码库 > 队列——数组实现
队列——数组实现
引言:
队列的实现除了链表外,也可用数组实现。
分析描述:
队列的结构:
typedef int ElementType; typedef struct QueueRecord{ int Capacity; int Front; int Rear; int Size; ElementType *Array; }QueueRecord, *Queue;
创建队列:
void MakeEmpty(Queue Q) { Q->Size = 0; Q->Front = 1; Q->Rear = 0; } Queue CreateQueue(int MaxElements) { Queue QueueHead = (Queue)malloc(sizeof(struct QueueRecord)); if(QueueHead == NULL){ fprintf(stderr, "out of sapce .\n"); exit(0); } QueueHead->Array = (ElementType *)malloc(sizeof(ElementType)*MaxElements); if(QueueHead->Array == NULL){ fprintf(stderr, "Out of sapce .\n"); } QueueHead->Capacity = MaxElements; MakeEmpty(QueueHead); return QueueHead; }
判断队列为空或队列已满:
int IsEmpty(Queue Q) { return Q->Size == 0; } int IsFull(Queue Q) { return Q->Size == Q->Capacity; }
入队列:
static int Succ(int Value, Queue Q) { if(++Value =http://www.mamicode.com/= Q->Capacity)>
出队列:void Dequeue(Queue Q) { if(IsEmpty(Q)) fprintf(stderr, "Empty queue.\n"); else{ Q->Size--; Q->Front = Succ(Q->Front, Q); } }
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。