环形队列实现元素逆置
来源:互联网 发布:谷越网络 编辑:程序博客网 时间:2024/04/29 03:16
代码:
#include<stdio.h>#include<malloc.h>#define MaxSize 5typedef char 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;}//环形队列逆置void ReverseQueue(SqQueue *q){ int len=((q->rear-q->front+MaxSize)%MaxSize);int a[MaxSize];ElemType e;for(int i=0;i<len;i++){deQueue(q,e);a[i]=e;}q->front=q->rear=0; for(int j=len-1;j>=0;j--) {q->rear=(q->rear+1)%MaxSize;q->data[q->rear]=a[j];}}void main(){ElemType e;SqQueue *q;InitQueue(q);if(!enQueue(q,'a'))printf("队满");if(!enQueue(q,'b'))printf("队满");if(!enQueue(q,'c'))printf("队满");if(!enQueue(q,'d'))printf("队满");printf("\n");printf("a、b、c、d进入环形队列\n"); ReverseQueue(q);printf("逆置:\n"); while(!QueueEmpty(q)){deQueue(q,e);printf("%c ",e);} DestroyQueue(q);}
1 4
- 环形队列实现元素逆置
- 环形队列实现原理
- 环形队列类实现
- 简单环形队列实现
- 环形队列实现原理
- 简单环形队列实现
- C#实现环形队列
- C++实现环形队列
- Java实现环形队列
- 环形队列的实现
- Java实现环形队列
- 环形消息队列的实现
- 环形队列FIFO实现方法
- 环形队列的c++实现
- 环形队列的C++实现
- 环形队列的实现原理
- 环形队列的数组实现
- 环形顺序队列的实现
- JavaSE0022_集合与常量
- linux下动态链接库的使用
- 正弦定理和余弦定理
- VMWare的虚拟机与Virtural box虚拟机磁盘能否完美兼容
- Linux 系统实时监控的瑞士军刀 —— Glances
- 环形队列实现元素逆置
- WINDOWS7黑屏、桌面图标全乱套
- Eclipse使用技巧
- 香港旅游议会:内地访港“零负团费”以新形式再现
- 电脑基础
- April Fools Day Contest 2014--A
- 影响Google Adsense广告单价高低的因素分析获取更高的收入
- async performance
- 第4周作业-打字成绩判断程序