构建循环队列(需判断队列满)
2012-09-09 22:43
211 查看
数据结构:
struct Queue
{
DataType sequ[m];
int rear,quelen;
};
typedef struct Queue * PQueue;
思路:入队列和出队列的算法和普通队列的思路近似,只是原来用两指针指向只差来表示队列中元素的个数,现在直接用quelen来表达。
程序代码:
PQueue createEmptyQueue() //创建空队列
{
PQueue pqu = (PQueue)malloc(sizeof(struct Queue));
pqu->rear = 0;
pqu->quelen = 0;
}
void enQueue(PQueue pqu,DataType x) //入队列
{
if(pqu->quelen== m)
{
printf("Overflow!\n");
return;
}
pqu->sequ[pqu->rear] = x;
pqu->rear = (pqu0>rear+1)%m;
pqueue->quelen++;
}
DataType deQueue(PQueue pqu) //队头元素出队列
{
int front = (pqu->rear - pqu->quelen)%m;
pqu->quelen--;
return pqu->sequ[front];
}
struct Queue
{
DataType sequ[m];
int rear,quelen;
};
typedef struct Queue * PQueue;
思路:入队列和出队列的算法和普通队列的思路近似,只是原来用两指针指向只差来表示队列中元素的个数,现在直接用quelen来表达。
程序代码:
PQueue createEmptyQueue() //创建空队列
{
PQueue pqu = (PQueue)malloc(sizeof(struct Queue));
pqu->rear = 0;
pqu->quelen = 0;
}
void enQueue(PQueue pqu,DataType x) //入队列
{
if(pqu->quelen== m)
{
printf("Overflow!\n");
return;
}
pqu->sequ[pqu->rear] = x;
pqu->rear = (pqu0>rear+1)%m;
pqueue->quelen++;
}
DataType deQueue(PQueue pqu) //队头元素出队列
{
int front = (pqu->rear - pqu->quelen)%m;
pqu->quelen--;
return pqu->sequ[front];
}
相关文章推荐
- C语言之循环队列判断满与空
- 判断循环队列满
- [数据结构]循环队列中判断队满与队空
- 利用栈和循环队列判断回文
- javascript实例--循环判断查询表单,构建SQL语句
- 循环队列实现(通过设置标志位tag位判断空队满队)
- 循环队列判断满与空
- 循环队列的常用操作(初始化,判断…
- 两种方法实现队满和队空的判断操作(循环队列)
- 循环队列判断满与空
- C语言实现循环队列基本操作(初始化、判断队空、入队、出队)
- 循环队列的判断满、空的三种方法以及具体代码实现(数组实现)
- 判断循环队列是满还是空
- 循环顺序队列2——使用标示位判断队满或空
- 循环队列中判断队满与队空
- 循环队列以及full/empty条件的判断
- 用循环数组实现队列的方法
- 数据结构学习笔记(8.循环队列与链队列)
- 【Python】 [基础] 条件判断 与 循环 与dict和set
- 学习笔记------数据结构(C语言版) 队列的顺序存储/循环队列