当前位置: 首页 > news >正文

阿里云ecs服务器建设网站给你一个网站seo如何做

阿里云ecs服务器建设网站,给你一个网站seo如何做,中企动力网站价格,深圳网站建设简介原题链接:https://leetcode.cn/problems/design-circular-queue/ 1. 题目描述 2. 循环队列的概念和结构 为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。…

原题链接:https://leetcode.cn/problems/design-circular-queue/

1. 题目描述

2. 循环队列的概念和结构

为充分利用向量空间,克服"假溢出"现象的方法是:将向量空间想象为一个首尾相接的圆环,并称这种向量为循环向量。存储在其中的队列称为循环队列(Circular Queue)。循环队列是把顺序队列首尾相连把存储队列元素的表从逻辑上看成一个环,成为循环队列。

在操作系统课程讲解生产者消费者模型时可以就会使用循环队列。

循环队列可以使用数组实现,也可以使用循环链表实现

 


3. 思路分析

通过一个定长数组实现循环队列。

入队:首先要判断队列是否已满,再进行入队的操作,入队操作需要考虑索引循环的问题,当索引越界,需要让它变成最小值。

出队:首先要判断队列是否为空,再进行出队操作,出队也需要考虑索引循环的问题。

判空: 队头 == 队尾

判满: 队尾 + 1 == 队头
 

4. 代码实现

typedef struct {int *a;int front;int rear;int k;
} MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj=(MyCircularQueue*) malloc(sizeof(MyCircularQueue));//多开一个方便区分空和满obj->a=(int*)malloc(sizeof(int)*(k+1));obj->front=obj->rear=0;obj->k=k;return obj;
}bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return obj->front==obj->rear;
}bool myCircularQueueIsFull(MyCircularQueue* obj) {return (obj->rear+1)%(obj->k+1)== obj->front;
}bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj))return false;obj->a[obj->rear]=value;obj->rear++;obj->rear%=(obj->k+1);return true;
}bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false;++obj->front;obj->front%=(obj->k+1);return true;
}int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj->a[obj->front];
}int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj->a[(obj->rear+obj->k)%(obj->k+1)];
}void myCircularQueueFree(MyCircularQueue* obj) {free(obj->a);free(obj);
}/*** Your MyCircularQueue struct will be instantiated and called as such:* MyCircularQueue* obj = myCircularQueueCreate(k);* bool param_1 = myCircularQueueEnQueue(obj, value);* bool param_2 = myCircularQueueDeQueue(obj);* int param_3 = myCircularQueueFront(obj);* int param_4 = myCircularQueueRear(obj);* bool param_5 = myCircularQueueIsEmpty(obj);* bool param_6 = myCircularQueueIsFull(obj);* myCircularQueueFree(obj);
*/

 

http://www.yidumall.com/news/68606.html

相关文章:

  • 有没有免费网站制作江门关键词排名优化
  • 桥西企业做网站西安的网络优化公司
  • 北京首都功能优化seo如何挖掘关键词
  • 辛集建设局官方网站天津百度推广排名优化
  • 上海徐汇网站建设线在成都网站推广公司
  • 苹果cms做网站seo网络优化招聘
  • 网站制作视频课程个人免费网上注册公司
  • 500亿网站建设网页设计制作网站代码
  • wordpress在线播放器北京网络排名优化
  • 课程网站开发运行环境百度指数查询官网
  • 网站设计和网站建设百度总部
  • 网站开发感受今天高清视频免费播放
  • 织梦是怎么做网站百度信息流推广
  • 重庆做网站价格色盲测试图 考驾照
  • 山西网站建设软件成全在线观看免费高清动漫
  • 武汉做网站推广网站联盟广告
  • 专注合肥网站建设排名检测
  • java网站开发优缺点临沂seo网站管理
  • sae wordpress ftp志鸿优化设计答案
  • 派遣公司做网站的好处windows优化大师有哪些功能
  • 沈阳做网站价格百度关键词排名推广
  • 在外汇局网站做登记报告爱链接
  • 响应式网站怎么做mip深圳英文站seo
  • 有什么网站可以做数学题广点通
  • 王爷不要seo快照推广
  • 给女友惊喜做网站湖南专业seo推广
  • 在手机上做网站是什么软件app拉新一手渠道
  • 如何网站建设平台海门网站建设
  • 筛选选功能形网站建设百度推广电话客服
  • 番禺网站开发哪家好微信管理软件