循环队列学习
来源:互联网 发布:传智播客c语言讲义 编辑:程序博客网 时间:2024/05/18 03:47
#include<stdio.h>#include<stdlib.h>#define MAX_QSIZE 5typedef int ElemType;typedef struct { ElemType *base; int front; int rear;}CSqQueue;//初始化循环队列int InitCSqQueue(CSqQueue &Q){ Q.base=(ElemType *)malloc(sizeof(ElemType)); Q.front=Q.rear=0; return 0;}//插入元素int EnCSqQueue(CSqQueue &Q,ElemType e){ if((Q.rear+1)%MAX_QSIZE==Q.front) return -1; Q.base[Q.rear]=e; Q.rear=(Q.rear+1)%MAX_QSIZE; return 0;}//清空循环队列int ClearQueue(CSqQueue &Q){Q.front=Q.rear=0;return 0;}//循环队列的长度int LengthQueue(CSqQueue Q){ return (Q.rear-Q.front+MAX_QSIZE)%MAX_QSIZE;}//删除元素int DeQueue(CSqQueue &Q,ElemType &e){ if(Q.front==Q.rear) return -1; e=Q.base[Q.front]; Q.front=(Q.front+1)%MAX_QSIZE; return e;}//得到元素int GetQueue(CSqQueue Q,ElemType &e){ if(Q.front==Q.rear) return -1; e=Q.base[Q.front]; return e;}//判空int EmptyQueue(CSqQueue Q){ if(Q.front==Q.rear) return 1; else return 0;}int main(){ CSqQueue Q; int i,e; InitCSqQueue(Q); printf("%d ", EmptyQueue(Q)); EnCSqQueue(Q,1); EnCSqQueue(Q,2); EnCSqQueue(Q,3); printf("\n"); printf("%d ",LengthQueue(Q)); printf("\n"); GetQueue(Q,e); printf("%d ",e); printf("\n"); DeQueue(Q,e); printf("%d",e); printf("\n"); for(i=Q.front;i<Q.rear;i++){ printf("%d ",Q.base[i]); } printf("\n"); ClearQueue(Q); printf("%d ", EmptyQueue(Q)); return 0;}
0 0
- 循环队列学习
- 数据结构学习之循环队列c++实现
- 数据结构学习之_循环队列
- 数据结构学习----顺序循环队列(Java实现)
- 数据结构——循环队列的学习
- 萌新循环队列学习笔记
- C++学习笔记 -- 循环队列的模板
- [学习笔记]循环队列和队列的链式结构
- 数据结构学习笔记(8.循环队列与链队列)
- 0521学习总结(循环队列,链式队列)
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- 循环队列
- LeetCode 231. Power of Two(2的N次幂)
- 轮廓、边缘、边界的相关函数
- 笔记--PageHelper分页
- Ajax应用详解
- iOS 如何设置启动引导图
- 循环队列学习
- tftp,ftp服务搭建
- 单例的获取and序列化和反序列化破坏单例的原因及解决方法
- 最小生成树(Minimum Spanning Tree)(Kruskal算法)
- KMP算法学习笔记
- 寻找子树
- leetcode之String to Integer
- Android-Fragment
- 织梦DedeCMS二次开发联动筛选功能的实现(含多选功能)