循环队列操作的实现-顺序存储结构
来源:互联网 发布:js radio 赋值 编辑:程序博客网 时间:2024/04/29 20:55
#include <iostream>#include <stdio.h>#define maxsize 50using namespace std;//循环队列typedef struct{ int data[maxsize]; int front,rear;}SqQueue;//初始化void init(SqQueue &q){ q.front=q.rear=0;}//判空bool isempty(SqQueue &q){ if(q.front==q.rear) return true; else return false;}//判满bool isfull(SqQueue &q){ if((q.rear+1)%maxsize==q.front) return true; else return false;}//入队int enqueue(SqQueue &q,int e){ if(isfull(q)) return 0; q.data[q.rear]=e; q.rear=(q.rear+1)%maxsize; return 1;}//出队int dequeue(SqQueue &q,int *e){ if(q.front==q.rear) return 0; *e=q.data[q.front]; //printf("%d 出队!",&e); q.front=(q.front+1)%maxsize; return 1;}//取队头元素int gettop(SqQueue &q,int *e){ *e=q.data[q.front]; return *e;}//求队列长度int qlength(SqQueue q){ return (q.rear-q.front+maxsize)%maxsize;}//显示void show(SqQueue &q){ for(int i=q.front;i<q.rear;i++){ printf("%d ",q.data[i]); } printf("\n");}int main(){ SqQueue s; int e; //初始化队列 init(s); //入队 for(int i=0;i<5;i++) enqueue(s,i); show(s); //出队 dequeue(s,&e); show(s); //取队头元素 int x=gettop(s,&e); printf("%d\n",x); int len=qlength(s); printf("%d ",len); return 0;}
阅读全文
0 0
- 循环队列操作的实现-顺序存储结构
- 队列的顺序存储结构---循环队列
- 队列的顺序存储结构(循环队列)
- 循环队列的顺序存储结构及实现
- JAVA实现队列的顺序存储结构和操作
- 队列的顺序存储结构与操作
- 队列的顺序存储结构与操作
- SqQueue循环队列的 顺序存储实现
- 循环队列的顺序存储实现
- 队列的顺序存储结构——循环队列 图解和代码实现
- 队列的顺序存储结构——循环队列 图解和代码实现
- 队列的顺序存储结构——循环队列 图解和代码实现
- 数据结构:队列的顺序存储结构(循环队列)
- 数据结构:队列的顺序存储结构(循环队列)
- 队列的顺序存储结构之循环队列
- 循环队列Queue--使用顺序存储结构(数组)实现
- 连续存储结构的循环队列实现
- 队列顺序循环存储实现
- 表单验证Jquery扩展方法类
- listview添加头之后,点击item错位问题
- Angular2 中管道@Pipe的简单用法
- SublimeTmpl插件--修改tmpl的问题
- Mybatis分页插件PageHelper
- 循环队列操作的实现-顺序存储结构
- Asset Labels
- Leetcode 152. Maximum Product Subarray
- 关于验证码不显示,开了GD库也无法显示的解决方法
- LIFERAY作为一个发展平台
- 深入理解Java的接口和抽象类
- safari new Date()参数问题
- Jenkins Git Parameter 插件配置过程
- Speeded-Up Robust Feature---SURF算法原论文全文翻译(1)