🚚 add func define

This commit is contained in:
Kim Yang
2020-08-16 14:15:35 +08:00
parent f7b45ed07c
commit f8d4e36746
9 changed files with 93 additions and 51 deletions

View File

@@ -15,25 +15,31 @@ typedef struct {
int front,rear;//对头指针和队尾指针
int tag;//利用tag变量记录最后一次操作是什么0为删除1为插入,并用作判满的条件有了tag就不会浪费一个存储空间
}SqQueue;
//函数声明
void InitQueue(SqQueue &Q);//初始化
bool QueueEmpty(SqQueue Q);//判空
bool EnQueue(SqQueue &Q,int t);//入队操作
bool DeQueue(SqQueue &Q,int &x);//出队操作
bool GetHead(SqQueue Q,int &x);//获取队头元素,用x返回
/**定义模块**/
/**实现模块**/
//初始化
void InitQueue(SqQueue &Q){
void InitQueue(SqQueue &Q) {
Q.rear=Q.front=0;//初始化时队头队尾都指向0
Q.tag=0;//初始化最后一次的操作状态
}
//判空
bool QueueEmpty(SqQueue Q){
bool QueueEmpty(SqQueue Q) {
if(Q.front==Q.rear&&Q.tag==0)//有了tag条件不一样了
return true;
else
return true;
}
//入队操作
bool EnQueue(SqQueue &Q,int t){
bool EnQueue(SqQueue &Q, int t) {
if(Q.front==Q.rear&&Q.tag==1)return false;//队满,注意这里的判满条件
Q.data[Q.rear]=t;
Q.rear=(Q.rear+1)%MaxSize;//通过取余操作让整个队列循环起来
@@ -41,16 +47,15 @@ bool EnQueue(SqQueue &Q,int t){
return true;
}
//出队操作
bool DeQueue(SqQueue &Q,int &x){
bool DeQueue(SqQueue &Q, int &x) {
if(Q.rear==Q.front&&Q.tag==0)return false;//队空
x=Q.data[Q.front];
Q.front=(Q.front+1)%MaxSize;
Q.tag==0;
return true;
}
//获取队头元素,用x返回
bool GetHead(SqQueue Q,int &x){
bool GetHead(SqQueue Q, int &x) {
if (Q.rear==Q.front&&Q.tag==0)return false;
x=Q.data[Q.front];
return true;