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

网站好的案例自己创建一个网页

网站好的案例,自己创建一个网页,wordpress美化插件,马大姐网站建设目的文章目录 1.循环队列的定义 2.循环队列的判空判满 3.创建队列并初始化 4.入队和出队 5. 返回队尾队首元素 6.释放循环队列 1.循环队列的定义 定义#xff1a;存储队列元素的表从逻辑上被视为一个环。 我们此次实现的循环队列#xff0c;采用顺序表 typedef struct {int…   文章目录 1.循环队列的定义 2.循环队列的判空判满 3.创建队列并初始化 4.入队和出队 5. 返回队尾队首元素 6.释放循环队列 1.循环队列的定义 定义存储队列元素的表从逻辑上被视为一个环。         我们此次实现的循环队列采用顺序表 typedef struct {int*a;int front;int rear;int k;} MyCircularQueue; 本质上是一个出入受限的顺序表那我们是怎么实现他的环状结构的呢毕竟顺序表是一个线性的结构而不是环状的。 答  他用取模运算刚好在存储空间上变成了“环状”。 例如我们要走一个环状顺序表 如果我们将rear1front2在逻辑上我们可以正常移动但其实我们物理存储上的指针已经溢出了所以我们刚好可以取模来控制指针的移动。 如果我们尾指针前进一步就可以Q.rear1% k刚好可以到达front的位置。 2.循环队列的判空判满 如图我们可以看到此时rearfront既可以是判空的条件也可以是判满的条件那我们应该怎么区分呢有三种方法://这里的指针变量会和题目中的不太一样但是判断逻辑相同 1.牺牲一个单元来进行区分 队满Q.rear1%MaxSize Q.front 队空   Q.frontQ.rear 2.设置一个Size表示队列元素长度来判断。 队满SizeMaxSize; 队空Size0 3.设置一个 tag标记 tag0 Q.frontQ.rear,队空 tag1 Q.frontQ.rear,队满。 isEmpty(): 检查循环队列是否为空。isFull(): 检查循环队列是否已满。 bool myCircularQueueIsEmpty(MyCircularQueue* obj) {assert(obj);if(obj-rearobj-front ){return true;}return false ; }bool myCircularQueueIsFull(MyCircularQueue* obj) {assert(obj);if((obj-rear1)%(obj-k1)obj-front ){return true;}return false ; } 3.创建队列并初始化 MyCircularQueue(k): 构造器设置队列长度为 k  MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue*obj(MyCircularQueue*)malloc(sizeof(MyCircularQueue));//创建一个循环的队列结构体指针节点obj-a(int*)malloc(sizeof(int)*(k1)) ;//队列长度为k但是要多一个空间用来判断空还是满obj-frontobj-rear0;obj-kk;return obj; }队列长度为k但是要多一个空间用来判断空还是满 所以我们用的是第一种判空判满策略牺牲一个存储空间 4.入队和出队 入队操作:    obj-a[obj-rear]value;                     obj-rear(obj-rear1)%(obj-k1);//  先赋值再移动指针 出队操作   obj-front(obj-front1)%(obj-k1);// 直接移动指针 enQueue(value): 向循环队列插入一个元素。如果成功插入则返回真。deQueue(): 从循环队列中删除一个元素。如果成功删除则返回真。 bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {assert(obj);if (myCircularQueueIsFull(obj)){return false;}obj-a[obj-rear]value;obj-rear(obj-rear1)%(obj-k1);return true;}bool myCircularQueueDeQueue(MyCircularQueue* obj) {assert(obj);if (myCircularQueueIsEmpty(obj)){return false;}obj-front(obj-front1)%(obj-k1);return true; }5. 返回队尾队首元素 Front: 从队首获取元素。如果队列为空返回 -1 。Rear: 获取队尾元素。如果队列为空返回 -1 。 int myCircularQueueFront(MyCircularQueue* obj) {assert(obj);if (myCircularQueueIsEmpty(obj)){return -1;}return obj-a[obj-front];}int myCircularQueueRear(MyCircularQueue* obj) {assert(obj);if (myCircularQueueIsEmpty(obj)){return -1;}else{int rearobj-rear0 ? obj-k : obj-rear-1;return obj-a[rear]; } } int rearobj-rear0 ? obj-k : obj-rear-1;  由于队尾后面还有一个用于判空判满的空间如果rear刚好指向这片空间他实际上是指向的真正的队尾下标为k如果不为0说明他指向的空间为正常的前驱结点。 6.释放循环队列 切记:  先释放结构体指针指向的创建的队列所在的空间再去释放结构体指针的空间。 void myCircularQueueFree(MyCircularQueue* obj) {free(obj-a);free(obj); }
http://www.pierceye.com/news/681245/

相关文章:

  • 专注七星彩网站开发出租云服务器上建网站
  • 天津做网站.都找津坤科技中国菲律宾历史战绩
  • 网站建设合同的效力网站建设公司需要交税么
  • 色弱可以做网站开发吗建网站的步骤及方法
  • 卖衣服的网站排名discuz分类信息模板
  • 广西网站开发公司招聘网页制作软件
  • 网站框架一般用什么做dede搭建网站教程
  • 郑州网站开发比较好的网络公司网络推广公司有多少家
  • 银川做网站服务免费word模板
  • 个人网站备案方法网站开发制作云盘
  • 培训做网站传奇手游发布网站
  • 中国保密在线网站培训系统手机购物平台
  • 厦门网站制作建设沐风 wordpress 主题
  • 网站选择城市怎么做北京招聘信息
  • 一个做搞笑类视频的网站取名手机端企业网站源码
  • 房地产网站模板网站建设论文范文
  • 任丘网站制作公司pc网站制作公司
  • 惠州城乡规划建设局网站工程公司经营范围
  • 淮南服装网站建设地址巴彦淖尔网站建设公司
  • 如何让自己的网站被百度收录wordpress 悬浮网易云
  • 天津展示型网站建设外包腾讯云wordpress镜像
  • python做网站点登入没反映wordpress母公司
  • 中国建设培训网站查询系统地产项目网站建设ppt
  • 温州高端网站建设网站开发实验心得
  • 设计参考网站有哪些陕西省西安市事业单位招聘网
  • 月编程做网站wordpress需要调用缩略图
  • 做一份网站动态图多少钱网站托管服务公司
  • 宣传式网站营销型网站套餐
  • 建设网站如何优化关键词江门排名优化公司
  • 做教学的视频网站wordpress小工具推荐