c语言 静态数组,静态数组实现循环队列 c语言

UI Automation也不是什么新东西了,很久以前曾经用过一次,最近又在一个测试中打算使用,于是又翻了一遍MSDN。MSDN里的介绍确实非常详细,但是对于一个刚刚接触

静态数组实现循环队列 c语言

分类:

数据结构

#include

#include

#define Data_Type int

#define Queue_Len 5

//判断队满有两种方式,一种是加以个标记,比如说size。

//另一种是浪费一块空间,当占到N-1时,就算满。

typedef struct Queue{

Data_Type data[Queue_Len];

int front;//队头元素的前一个元素

int rear;// 队尾元素

//int size; 记录队列的大小

}QUEUE,* QQUEUE;

void create(QQUEUE);

bool isFull(QQUEUE);

bool isEmpty(QQUEUE);

bool add(QQUEUE,Data_Type);

Data_Type out(QQUEUE);

void traverse(QQUEUE);

int main(void){

QUEUE queue ;

create(&queue);

add(&queue,1);

add(&queue,2);

add(&queue,3);

add(&queue,4);

out(&queue);

add(&queue,5);

out(&queue);

add(&queue,6);

out(&queue);

add(&queue,7);

traverse(&queue);

}

bool isFull(QQUEUE qQuere){

if((qQuere->rear+1)%Queue_Len==qQuere->front){

return true;

} else{

return false;

}

}

bool isEmpty(QQUEUE qQueue){

if(qQueue->front==qQueue->rear){

return true;

}else{

return false;

}

}

void create(QQUEUE qQueue){

qQueue->front=qQueue->rear=0;

return;

}

void traverse(QQUEUE qQueue){

int i=qQueue->front;

while(i!=qQueue->rear){

//这里比较绕,为什么输出时要取余?

//首先front表示的是队首元素的前一个元素,,肯定是不能输出的。

// 如果给他+1,则可以正常输出队首。

//但队尾会出问题,如果下标是队尾下标,+1则会超出数组长度

//所以再取余, 则输出正常

printf("%d\n",qQueue->data[(i+1)%Queue_Len]);

i++;

i=i%Queue_Len;

//换一种好理解的

//先找到下一个合法元素,找到再输出

//所以直接输出i 就可以了,因为i已经是要找的下一个元素。

//i++;

//i=i%Queue_Len;

//printf("%d\n",qQueue->data[i]);

}

}

bool add(QQUEUE qQueue,Data_Type val){

if(isFull(qQueue)){

return false;

}else{

qQueue->rear = (qQueue->rear+1)%Queue_Len;

qQueue->data[qQueue->rear]=val;

return true;

}

}

Data_Type out(QQUEUE qQueue){

if(isEmpty(qQueue)){

exit(-1);

}else{

Data_Type val = qQueue->data[qQueue->front+1];

qQueue->front = (qQueue->front+1)%Queue_Len;

return val;

}

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

上一篇链表实现链式栈 c语言

0

0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
4S店客户管理小程序-毕业设计,基于微信小程序+SSM+MySql开发,源码+数据库+论文答辩+毕业论文+视频演示 社会的发展和科学技术的进步,互联网技术越来越受欢迎。手机也逐渐受到广大人民群众的喜爱,也逐渐进入了每个用户的使用。手机具有便利性,速度快,效率高,成本低等优点。 因此,构建符合自己要求的操作系统是非常有意义的。 本文从管理员、用户的功能要求出发,4S店客户管理系统中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理,用户客户端:首页、车展、新闻头条、我的。门店客户端:首页、车展、新闻头条、我的经过认真细致的研究,精心准备和规划,最后测试成功,系统可以正常使用。分析功能调整与4S店客户管理系统实现的实际需求相结合,讨论了微信开发者技术与后台结合java语言和MySQL数据库开发4S店客户管理系统的使用。 关键字:4S店客户管理系统小程序 微信开发者 Java技术 MySQL数据库 软件的功能: 1、开发实现4S店客户管理系统的整个系统程序; 2、管理员服务端;首页、个人中心、用户管理、门店管理、车展管理、汽车品牌管理、新闻头条管理、预约试驾管理、我的收藏管理、系统管理等。 3、用户客户端:首页、车展、新闻头条、我的 4、门店客户端:首页、车展、新闻头条、我的等相应操作; 5、基础数据管理:实现系统基本信息的添加、修改及删除等操作,并且根据需求进行交流信息的查看及回复相应操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值