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

建设工程质量安全管理体系网站如何做有后台的网站

建设工程质量安全管理体系网站,如何做有后台的网站,包装材料营销型网站,建立一个企业网站需要花多少钱循环队列是我们可以对队列有更深一步的理解的题目,而且可以进一步加强其他方面的知识(例如对循环数组的取模运算,指针的解引用),是个蛮不错的巩固习题,话不多说,进入正题。 链接在此&#xff1…

循环队列是我们可以对队列有更深一步的理解的题目,而且可以进一步加强其他方面的知识(例如对循环数组的取模运算,指针的解引用),是个蛮不错的巩固习题,话不多说,进入正题。
在这里插入图片描述
链接在此:设计循环队列
强烈建议先自己做一遍,直接看的话可能会比较不知所云

目录

  • 利用数组设计:
    • 思路:
    • 代码实现:
  • 利用链表设计:
    • 思路:
    • 代码实现:

本题可以使用 数组或链表来设计,本篇文章都会涉及到
做这题时会遇到很多难点
先说结论:此题的难点在于如何判断数组的 空与满,不管是链表还是数组,实现此问题都是难点。
在数据结构中,我们通常在解决此问题时都是选择多设置一个位置,back指向当前元素的下一个。
但多出来的位置不是不用,例如:

在这里插入图片描述
这样可以比较好的解决此类问题。

利用数组设计:

思路:

已经有了上述的前置知识
我们就可以比较轻易地判断空与满,数组中的frontback下标指向同一个位置时是空,那么什么时候会满呢?
back的下一个为front时就为满,即back+1 == front

在这里插入图片描述
但是如果backfront后边,就需要我们的比较灵活的运用取模运算在这里插入图片描述
在上边我们说到back+1 == front时为满,但是在上图中,我们发现back+1并不是front,而是超出了数组,
我们说过,会定义N+1个空间,N是元素个数,经过思考,我们会发现N就是back的下标,N+1就是back+1位置的下标,
那我们(back + 1)% (N + 1) == front时就是满
代码中剩下的取模运算也都大同小异

代码实现:

typedef struct {int* arr;int front;int rear;int N;
} MyCircularQueue;bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return (obj->front == obj->rear);
}bool myCircularQueueIsFull(MyCircularQueue* obj) {return (obj->rear + 1 ) % (obj->N + 1) == obj->front;
}MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* ret = (MyCircularQueue*)malloc(sizeof(MyCircularQueue));ret->arr = (int*)malloc(sizeof(int)*(k+1));ret->front = 0;ret->rear = 0;ret->N = k;return ret;
}bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj)){return false;}obj->arr[obj->rear] = value;obj->rear++;//防止rear出界obj->rear %= (obj->N + 1);return true;
}bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj)){return false;}obj->front++;//防止front出界obj->front %= (obj->N + 1);return true;
}int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj)){return -1;}return obj->arr[obj->front];
}int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj)){return -1;}//此处可以不用取模,if与else判断也可以return obj->arr[(obj->rear-1+(obj->N+1))%(obj->N+1)];
}void myCircularQueueFree(MyCircularQueue* obj) {free(obj->arr);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.yayakq.cn/news/209420/

相关文章:

  • 信息技术做网站东莞倣网站
  • 惠州有家最好网站建设邢台网站建设与制作
  • 西安网络推广网站优化江门百度网站快速优化
  • 中国建设银行网站北京网点建设银行网站特色
  • 团购网站 seo湖州网络推广竞价
  • 德州网站开发人员单位网站建设需要哪些技术
  • 做阿里巴巴网站口碑小程序商城介绍
  • 网站开发设计总结及心得体会酷站 网站模板
  • 商丘网站制作公司一二三网络推广satellite7 wordpress
  • 做网站的税是多少wordpress行业主题
  • 易思腾网站建设wordpress 文章收费
  • 做电商要关注哪些网站中国建设银行英语网站
  • 吴江做网站公司企业网站建设的本质及特点
  • 手机访问pc网站跳转商城小程序价格
  • 狠狠做最新网站手机制作
  • 北京网站优化平台网站开发需要用到哪些技术
  • 华容县住房和城乡建设局网站计算机网站怎么做
  • 泰安市建设职工培训中心网站官网做跨境电商被骗了
  • 网站设计过程介绍上海比较好的网站制作公司
  • wordpress移站南宁微网站制作
  • 做网站必须用tomcat广州公司注册流程详解
  • 网站我们的客户免费搭建博客网站
  • 手机网站设计开发wdcp 配置网站
  • 品质培训的网站建设郑州网站设计报价表
  • 网站登录验证码是怎么做的千库网是什么
  • 百度网站建设及推广电子商务公司网站模版
  • 企业网站 建设策划书wordpress加载转圈
  • 滕州做网站的优化seo方案
  • ps设计师网站有哪些公司注册公司流程
  • 和两个黑人同时做网站个人网页模板关于爱国