队列的基本运算
程序员文章站
2024-03-18 12:13:04
...
队列的基本运算
#include<iostream>
#include<malloc.h>
#define MaxSize 50
typedef struct//申明一个顺序队列结构体
{
int data[MaxSize];
int front, rear;
} SqQueue;
//queue.cpp函数声明
void InitQueue(SqQueue *&q);//初始化队列,构造一个空队列q
void DestoryQueue(SqQueue *&q);//销毁队列,释放队列q占用的存储空间
bool QueueEmpty(SqQueue q);//判断队列是否为空,队列为空返回真,否则返回假
bool enQueue(SqQueue *&q, int e);//进队列,将元素e进队列作为队尾元素 。进队列成功返回真,否则返回假。
bool deQueue(SqQueue *&q, int &e);//出队列,并将其值赋给e。出队列成功返回真,否则返回假。
//队列函数
void InitQueue(SqQueue *&q)//初始化队列,构造一个空队列q
{
q = (SqQueue*)malloc(sizeof(SqQueue));
q->front = q->rear = -1;
}
void DestoryQueue(SqQueue *&q)//销毁队列,释放队列q占用的存储空间
{
free(q);
}
bool QueueEmpty(SqQueue q)//判断队列是否为空,队列为空返回真,否则返回假
{
if (q.front == q.rear) return true;
else
return false;
}
bool enQueue(SqQueue *&q, int e)//进队列,将元素e进队列作为队尾元素 。进队列成功返回真,否则返回假。
{
if (q->rear == N - 1)
return false;
q->rear++;
q->data[q->rear] = e;
return true;
}
bool deQueue(SqQueue *&q, int &e)//出队列,并将其值赋给e。出队列成功返回真,否则返回假。
{
if (q->rear == q->front)
return false;
q->front++;
e = q->data[q->front];
return true;
}
上一篇: 算法之由两个栈组成队列
下一篇: 线性结构:队列