顺序循环队列的c语言实现
2014-05-24 11:18
309 查看
1. 循环队列的顺序存储结构
2. 初始化一个空队列Q
3.将Q清为空队列
4. 若队列Q为空队列,则返回TRUE,否则返回FALSE
5. 返回Q的元素个数,也就是队列的当前长度
6.若队列不空,则用e返回Q的队头元素,并返回OK,否则返回ERROR
7.若队列未满,则插入元素e为Q新的队尾元素
8.若队列不空,则删除Q中队头元素,用e返回其值
9. 从队头到队尾依次对队列Q中每个元素输出
参考<<大话数据结构>>
typedef struct { QElemType data[MAXSIZE]; int front; /* 头指针 */ int rear; /* 尾指针,若队列不空,指向队列尾元素的下一个位置 */ }SqQueue;
2. 初始化一个空队列Q
Status InitQueue(SqQueue *Q) { Q->front=0; Q->rear=0; return OK; }
3.将Q清为空队列
Status ClearQueue(SqQueue *Q) { Q->front=Q->rear=0; return OK; }
4. 若队列Q为空队列,则返回TRUE,否则返回FALSE
Status QueueEmpty(SqQueue Q) { if(Q.front==Q.rear) /* 队列空的标志 */ return TRUE; else return FALSE; }
5. 返回Q的元素个数,也就是队列的当前长度
int QueueLength(SqQueue Q) { return (Q.rear-Q.front+MAXSIZE)%MAXSIZE; }
6.若队列不空,则用e返回Q的队头元素,并返回OK,否则返回ERROR
Status GetHead(SqQueue Q,QElemType *e) { if(Q.front==Q.rear) /* 队列空 */ return ERROR; *e=Q.data[Q.front]; return OK; }
7.若队列未满,则插入元素e为Q新的队尾元素
Status EnQueue(SqQueue *Q,QElemType e) { if ((Q->rear+1)%MAXSIZE == Q->front) /* 队列满的判断 */ return ERROR; Q->data[Q->rear]=e; /* 将元素e赋值给队尾 */ Q->rear=(Q->rear+1)%MAXSIZE;/* rear指针向后移一位置, */ /* 若到最后则转到数组头部 */ return OK; }
8.若队列不空,则删除Q中队头元素,用e返回其值
Status DeQueue(SqQueue *Q,QElemType *e) { if (Q->front == Q->rear) /* 队列空的判断 */ return ERROR; *e=Q->data[Q->front]; /* 将队头元素赋值给e */ Q->front=(Q->front+1)%MAXSIZE; /* front指针向后移一位置, */ /* 若到最后则转到数组头部 */ return OK; }
9. 从队头到队尾依次对队列Q中每个元素输出
Status QueueTraverse(SqQueue Q) { int i; i=Q.front; while((i+Q.front)!=Q.rear) { visit(Q.data[i]); i=(i+1)%MAXSIZE; } printf("\n"); return OK; }
Status visit(QElemType c) { printf("%d ",c); return OK; }
参考<<大话数据结构>>
相关文章推荐
- 循环队列-顺序存储-c语言实现
- 循环队列——队列的顺序表示与实现(c语言)
- C语言实现,顺序队列,循环队列,和栈!
- 顺序循环队列的实现(c语言)
- 顺序队列(循环队列)基本操作实现 C语言
- 队列的顺序实现(循环数组)与链式实现
- C#实现循环顺序队列(队列)
- 队列的顺序实现(循环数组)与链式实现
- 五、数据结构基础之循环队列C语言实现
- 数据结构c++实现----顺序循环队列
- 顺序存储实现队列 循环队列 好麻烦
- 用C语言实现简单循环队列结构
- 重温数据结构:队列的链式实现、顺序实现及循环队列
- 循环队列(用顺序表来实现)
- 数据结构:循环队列(C语言实现)
- (C语言队列的顺序实现(数据结构十)
- 循环队列-顺序存储-Java实现
- 数据结构学习笔记 --- 队列(循环队列-队列的顺序表示和实现)
- STL之顺序容器适配器(队列的循环数组实现)
- 3.4.3 循环队列--------队列的顺序表示与实现(1)