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

php网站开发实例教程代码广西八桂职教网官网

php网站开发实例教程代码,广西八桂职教网官网,关于旅游的网站建设论文,网站建设在哪个软件下做什么是假溢出#xff1f; 当我们使用队列这种基本的数据结构时#xff0c;很容易发现#xff0c;随着入队和出队操作的不断进行#xff0c;队列的数据区域不断地偏向队尾方向移动。当我们的队尾指针指向了队列之外的区域时#xff0c;我们就不能再进行入队操作了#xff…什么是假溢出 当我们使用队列这种基本的数据结构时很容易发现随着入队和出队操作的不断进行队列的数据区域不断地偏向队尾方向移动。当我们的队尾指针指向了队列之外的区域时我们就不能再进行入队操作了而此时由于队头已经偏离原来位置也就意味着实际上队列并没有满。这种实际上还有空间但是却发生了溢出的现象就称为假溢出现象。 假设有以下队列初始元素为1、2、3、4、5队头元素是1队尾元素是5. 当我们弹出队头元素两次得到队列 这个时候top指针向右边偏移如果再进行入队操作我们会发现rear指针已经不能向后移动了而此时队列并没有满top前面还有空间。 这就是假溢出。 如何解决假溢出问题 为了避免假溢出问题我们需要对队列进行优化--循环队列。 对于前面的问题我们发现导致假溢出的主要问题就是尾指针rear不能指向可以存放空间的地址换句话来说就是不能指向前面已经出队了元素的地址。针对这一问题我们整个队列看成一个可以循环的环状结构指向队头队尾的指针往后走还能回到原来的位置。 这样一来前面已经出队元素的空间我们依旧可以存放元素也就解决了假溢出的问题。这里rear指向队尾元素的下一个元素。 模拟循环队列 首先假设我们队列的最大存储数据个数为k。 用一个数组来模拟循环队列并且初始化容量为k1,队头队尾指针都指向下标为0的元素地址 为什么容量要多一个呢 为了更好的区分队列为空和队列已满。 如何判断循环队列是否为空 if(toprear)为真则队列为空 如何判断循环队列是否为满 由于我们多开辟了一个元素的空间且这个空间不存放元素也就意味着如果已经存了k个元素此时的rear指向这个空的区域rear指向空间的下一个空间的元素被top指针指向。 if((rear1)%(k1)top)//真则队列为满 如何求得循环队列的元素个数 num(reark-top)%(k1)//num为循环队列元素个数 由于rear指针可能在top指针的前面所以我们不能直接使用rear-top. 那么我们可以这么想之所以rear会出现在top前面是因为rear已经走了一圈了假设只多走了一圈那么rear移动的总距离就是当前元素位置加队列长度top移动的距离就是当前下标。 力扣面试题 622. 设计循环队列https://leetcode.cn/problems/design-circular-queue/ 代码 typedef struct {int *val;int front;int back;int k;int size; } MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue *obj(MyCircularQueue *)malloc(sizeof(MyCircularQueue));obj-val(int*)malloc(sizeof(int)*(k1));obj-front0;obj-back0;obj-kk;obj-size0;return obj; }bool myCircularQueueIsEmpty(MyCircularQueue* obj) {return ((obj-back)(obj-front)); }bool myCircularQueueIsFull(MyCircularQueue* obj) {return (((obj-back1)%(obj-k1))obj-front); } bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj))return false;obj-val[obj-back]value;obj-back(obj-back1)%(obj-k1);return true; }bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false;obj-front(obj-front1)%(obj-k1);return true; }int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;return obj-val[obj-front]; }int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;int kobj-k;return obj-val[(obj-backk)%(k1)]; }void myCircularQueueFree(MyCircularQueue* obj) {free(obj-val);obj-valNULL;free(obj);}
http://www.yutouwan.com/news/33595/

相关文章:

  • 自己做外贸购物网站教做美食的网站
  • 备案号 不放在网站上商城网站建设方案书
  • 北京网站建设制作开发公司提供网络推广服务
  • 移动网站制作公司子网站如何做
  • 来年做哪个网站致富虹口网站建设
  • 网站建设公司知名企业外贸网站优化谷歌关键词排名
  • 网站themes目录百度推广托管公司
  • 专业点网站制作公司商用营销型网站建设
  • 图书馆理论与建设网站餐饮品牌设计论文
  • 国家基础设施建设网站画册设计需要注意的事项
  • 装潢公司网站模板用dw建设个人网站视频
  • 莱芜高端网站建设报价网站的维护和更新
  • 网站建设项目资金申请报告钓鱼网站到底怎么做
  • 天气预报网站开发aspcms 网站栏目管理
  • 签名设计在线企业seo网络推广
  • 网站开发环境准备免费建站软件排行榜
  • 外国网站 游戏设定图知乎seo排名帝搜软件
  • 长兴网站建设公司如何做一个网站代码
  • 怎么修改网站模版保定关键词优化平台
  • 河北建设工程信息网已取消谷歌关键词排名优化
  • 在线网站免费没备案的网站怎么做淘客
  • 拦截网站做跳转做收益的网站多少钱
  • php网站开发工资多少钱电子商务网站建设收获
  • 网站分为几种可以自己设计装修的免费软件
  • 购物网站数据分析如何在相关网站免费做宣传广告
  • 海口网站建设推广网络规划设计师教程第2版pdf下载
  • 合肥建设工程信息网站wordpress首页最新文章
  • 重庆网站维护2022双11各大电商平台销售数据
  • 寿光做网站的公司长沙短视频制作
  • 重庆微网站app软件开发学什么专业