环形队列各种基本运算的算法
2017-11-01 20:13
716 查看
【代码】//文件名:sqqueue.cpp
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{ ElemType data[MaxSize];
int front,rear;
} SqQueue;
void InitQueue(SqQueue *&q) //初始化队
{ q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=0;
}
void DestroyQueue(SqQueue *q) //销毁队
{ free(q);
}
bool QueueEmpty(SqQueue *q) //判断队是否为空
{ return q->front==q->rear;
}
bool EnQueue(SqQueue *q,ElemType e) //进队
{ if((q->rear+1)%MaxSize==q->front)
return false;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e;
return true;
}
bool DeQueue(SqQueue *q,ElemType &e) //出队
{ if(q->front==q->rear)
return false;
q->front=(q->front+1)%MaxSize;
e=q->data[q->front];
return true;
}
#include <stdio.h>
#include <malloc.h>
#define MaxSize 100
typedef int ElemType;
typedef struct
{ ElemType data[MaxSize];
int front,rear;
} SqQueue;
void InitQueue(SqQueue *&q) //初始化队
{ q=(SqQueue *)malloc(sizeof(SqQueue));
q->front=q->rear=0;
}
void DestroyQueue(SqQueue *q) //销毁队
{ free(q);
}
bool QueueEmpty(SqQueue *q) //判断队是否为空
{ return q->front==q->rear;
}
bool EnQueue(SqQueue *q,ElemType e) //进队
{ if((q->rear+1)%MaxSize==q->front)
return false;
q->rear=(q->rear+1)%MaxSize;
q->data[q->rear]=e;
return true;
}
bool DeQueue(SqQueue *q,ElemType &e) //出队
{ if(q->front==q->rear)
return false;
q->front=(q->front+1)%MaxSize;
e=q->data[q->front];
return true;
}
相关文章推荐
- 实现环形队列各种基本运算的算法(用顺序结构)
- 数据结构第三章实验3.实现环形队列的各种基本运算
- 编写一个程序,实现顺序环形队列的各种基本运算。
- 实现顺序队列各种基本运算的算法
- 实现顺序队列各种基本运算的算法
- 顺序环形队列的各种基本运算
- 顺序环形队列的各种基本运算
- 实现双链表的各种基本运算的算法
- 实现顺序栈的各种基本运算的算法
- !实现循环双链表各种基本运算的算法
- 单链表各种基本运算的算法
- 环形队列的基本运算
- 顺序串各种基本运算的算法
- 实现顺序栈各种基本运算的算法
- 顺序表各种基本运算的算法
- 链队列的各种基本运算
- 实现链栈各种基本运算的算法
- 实现顺序栈的各种基本运算的算法
- 环形队中实现队列的基本运算
- 实现二叉树各种基本运算的算法