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

厦门市建设工程质量安全协会网站怎么创建自己的购物平台

厦门市建设工程质量安全协会网站,怎么创建自己的购物平台,金点子招聘信息莱芜信息港,php网站开发环境论文目录 【Leetcode622】设计循环队列 A.链接 B.题目再现 C.解法 【Leetcode622】设计循环队列 A.链接 设计循环队列 B.题目再现 C.解法 其实这题用数组或是链表都能解决#xff0c;但是如果是用链表的话#xff0c;那么队列为空的条件和队列满了的条件是一样的#xff0… 目录 【Leetcode622】设计循环队列 A.链接 B.题目再现 C.解法 【Leetcode622】设计循环队列 A.链接 设计循环队列 B.题目再现 C.解法 其实这题用数组或是链表都能解决但是如果是用链表的话那么队列为空的条件和队列满了的条件是一样的都为 frontrear这样就无法判断加个哨兵位的头节点可以解决这个问题但是后面接口的实现又会很麻烦所以这题还是推荐用数组实现。 创建数组时我们多开1个空间也就是开 k1 个空间 具体来说 刚开始队列为空所以 frontrear0 1.插入数据时在下标为 rear 的位置插入然后rear,为了防止下次插入数据时越界rear还要模上 k1 当rear1front即队列满了就不能插入返回false但是这里不能简单地判断 rear1front因为有几种特殊的情况需要注意: 2.删除数据时要先判断队列是否为空若为空则返回false 若不为空只需让front注意这了还是要让front 模上k1防止加着加着就越界了。 3.获取队头数据很简单只需要在此之前判断队列是否为空为空则返回-1 不为空则返回 front 4.获取队尾数据时在此之前同样需要判空若为空则返回-1 若不为空因为 rear 始终表示的是下一个位置所以返回 rear -1但是如果 rear 的值是0的话rear-1-1访问就越界了这个特殊的情况需要注意或者不单独判断这个特殊情况直接先让rear-1再加上k1然后模上k1返回其结果这样即使rear是0也不会造成越界访问。 5.判空很简单只需判断 rear 是否等于 front 即可。 typedef struct {int *arr;int front;int rear;int k; } MyCircularQueue;bool myCircularQueueIsFull(MyCircularQueue* obj) {//不能简单地判断rear1front即为满要考虑特殊情况return ((obj-rear1)%(obj-k1))(obj-front); }bool myCircularQueueIsEmpty(MyCircularQueue* obj) {if(obj-frontobj-rear)return true;elsereturn false; } MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue*obj(MyCircularQueue*)malloc(sizeof(MyCircularQueue));if(objNULL)return NULL;obj-frontobj-rear0;obj-kk; //这里记录k的值后面的接口需要用到obj-arr(int *)malloc(sizeof(int)*(k1)); //开 k1 个空间if(obj-arrNULL)return NULL;return obj; }bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj)) //队列为满则返回falsereturn false;obj-arr[obj-rear]value;obj-rear%(obj-k1); //防止 rear 加着加着就越界了return true; }bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj)) //队列为空则返回falsereturn false;obj-front;obj-front%(obj-k1); //防止 front 加着加着就越界了return true; }int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj)) //队列为空则返回-1return -1;return obj-arr[obj-front]; }int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;//rear表示的是下一个位置所以队尾数据的下标时rear-1但要考虑rear0 这一特殊情况return obj-arr[(obj-rear-1obj-k1)%(obj-k1)]; }void myCircularQueueFree(MyCircularQueue* obj) {free(obj-arr); //先销毁创建的数组free(obj); }这循环队列的讲解就到这里了若有错误或是建议欢迎小伙伴们指出。 希望小伙伴们可以多多支持博主哦。 谢谢你的阅读。
http://www.w-s-a.com/news/909951/

相关文章:

  • 网站代码加密了怎么做兰州最新大事
  • 现在ui做的比较好的网站去年做啥网站致富
  • 广东网站建设咨询电话好牌子网
  • 公司怎样制作网站南阳网站关键词
  • 营销型网站建设与网盟完整php网站开发
  • 网站做微信链接怎么做的石桥铺网站建设公司
  • 济南mip网站建设公司做图书馆网站模板
  • app 门户网站网站项目框架
  • 做网站视频网站备案 新闻审批号
  • 织梦网站怎么居中视频网站开发与制作
  • 网站上海备案佛山网站seo哪家好
  • 品牌形象网站有哪些珠海市区工商年报在哪个网站做
  • 注册域名不建设网站seo外包服务方案
  • 如何进行外贸网站建设wordpress文章输入密码可见
  • 政务网站建设索引常州做网站信息
  • 南宁做网站找哪家好wordpress 更改首页
  • 一个人在家做网站建设品牌策划流程
  • 小网站广告投放wordpress页面添加js
  • 仿制别人的竞价网站做竞价犯法吗wordpress添加版块
  • wordpress主题 站长互联网站备案表
  • 广州品牌策划公司排行南宁seo网络推广公司
  • 营销型网站图片肯德基网站开发
  • 网站的外链是什么wordpress开启菜单
  • 文字字体是什么网站西安博达网站建设
  • 北京南昌网站建设网站查看空间商
  • 网站建设人员职责分布乐清市网站建设设计
  • 网站建设etw网站建设陕西
  • 网站文章页内链结构不好可以改吗wordpress英文模板下载
  • 北京天通苑 做网站哈尔滨快速网站排名
  • 网站开发负责人是什么职位试剂网站建设