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

用360云盘做网站简洁个人博客网站模板

用360云盘做网站,简洁个人博客网站模板,邯郸网站制作公司,谁分享一个免费网站2021本题重点#xff1a; 1. 选择合适的数据结构 2. 针对选择的数据结构判断“空”和“满” 这两点是不分先后次序的#xff0c;在思考时应该被综合起来。事实上#xff0c;无论我们选择链表还是数组#xff0c;最终都能实现题中描述的“循环队列”的功能#xff0c;只不过… 本题重点 1. 选择合适的数据结构 2. 针对选择的数据结构判断“空”和“满” 这两点是不分先后次序的在思考时应该被综合起来。事实上无论我们选择链表还是数组最终都能实现题中描述的“循环队列”的功能只不过选择不同结构时我们面临和需要解决的问题不同。 一、思路 1. 数组实现队列。定义变量 front 标识队头变量 rear 标识队尾。 数组设计循环队列的好处 1. 找队尾元素方便使用链表实现时需要找尾。 2. 循环实现方便通过控制下标即可完成循环。 2. 初始时front rear 0每次插入一个元素rear向后走一位。 3. 判断“空” 和 “满”。如果 front 和 rear 下标相同队列为空还是满 4. 理解rear 1% k 1 front 。 若队列已满则rear 的下一个位置为 front。 此外每一次插入数据 或者 删除数据 后都要进行取模操作 防止 front 和 rear 走出实际数组的范围造成数组越界。 二、功能模块实现  1. MyCircularQueue(k): 设置队列长度为 k typedef struct {int* a; // 指向的空间用来存储元素int front;int rear;int k; } MyCircularQueue;​ MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj (MyCircularQueue*)malloc(sizeof(MyCircularQueue));obj-front obj-rear 0;obj-k k;obj-a (int*)malloc(sizeof(int) * (k 1));// 多创建1个空位// 该位置不用来存储元素仅用于判断队列“空”和“满”return obj; } 2. isEmpty(): 检查循环队列是否为空 bool myCircularQueueIsEmpty(MyCircularQueue* obj) {if(obj-rear obj-front)return true;elsereturn false; } 3. isFull(): 检查循环队列是否已满 bool myCircularQueueIsFull(MyCircularQueue* obj) {if((obj-rear 1) % (obj-k 1) obj-front)return true;elsereturn false; } 4. enQueue(value): 向循环队列插入一个元素。 如果成功插入则返回真。 bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj))return false;else{obj-a[obj-rear] value;obj-rear;obj-rear % obj-k 1;return true;} } 5. deQueue(): 从循环队列中删除一个元素。 如果成功删除则返回真。 bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false;else{obj-front;obj-front % obj-k 1;return true;} } 6. Front: 从队首获取元素。 如果队列为空返回 -1 。 int myCircularQueueFront(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj-a[obj-front]; } 7. Rear: 获取队尾元素。 如果队列为空返回 -1 。  int myCircularQueueRear(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return -1;elsereturn obj-a[(obj-rear (obj-k 1) - 1) % (obj-k 1)]; } 8. QueueFree: 销毁循环队列 void myCircularQueueFree(MyCircularQueue* obj) {free(obj-a);free(obj); } 三、所有代码 typedef struct {int* a;int front;int rear;int k; } MyCircularQueue;MyCircularQueue* myCircularQueueCreate(int k) {MyCircularQueue* obj (MyCircularQueue*)malloc(sizeof(MyCircularQueue));obj-front obj-rear 0;obj-k k;obj-a (int*)malloc(sizeof(int) * (k 1));return obj; }bool myCircularQueueIsEmpty(MyCircularQueue* obj) {if(obj-rear obj-front)return true;elsereturn false; }bool myCircularQueueIsFull(MyCircularQueue* obj) {if((obj-rear 1) % (obj-k 1) obj-front)return true;elsereturn false; }bool myCircularQueueEnQueue(MyCircularQueue* obj, int value) {if(myCircularQueueIsFull(obj))return false;else{obj-a[obj-rear] value;obj-rear;obj-rear % obj-k 1;return true;} }bool myCircularQueueDeQueue(MyCircularQueue* obj) {if(myCircularQueueIsEmpty(obj))return false;else{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 1) - 1) % (obj-k 1)]; }void myCircularQueueFree(MyCircularQueue* obj) {free(obj-a);free(obj); }
http://www.zqtcl.cn/news/144285/

相关文章:

  • 淘宝客导购网站怎么做建设网站天河区
  • 做网站的优势有哪些wordpress 一直崩溃
  • 长沙交互网站设计服务商优秀的网页网站设计
  • android 旅游网站开发有哪些做伦敦金的网站
  • 物流网站系统php源码seo课程多少钱
  • 手机 网站品牌网站建设 d磐石网络
  • 免费用搭建网站珠海住房和建设局网站
  • 天津做胎儿鉴定网站广州古德室内设计有限公司logo
  • 做爰的最好看的视频的网站简洁型网页
  • 网站一直显示建设中网页制作工具程
  • 苏州seo网站管理网站后台更新后主页没有变化
  • 上海网站公司电话中国电子信息网
  • 合作网站seo在哪里建网站免费
  • 需求网站自动发卡网站开发
  • 用asp做网站span电子商务网站建设的教案
  • 厦门市住房建设网站音乐主题wordpress
  • 小说网站开发文档建站公司用wordpress
  • 自己做手机版网站制作佛山网站建设企划动力
  • 鄂州建设工程造价信息管理网站wordpress 3.9 编辑文章 固定链接 不能编辑
  • asp网站的安全性织梦移动端网站建设
  • 大网站的二级域名哪些平台可以发布产品
  • 旅游网站开发说明书怎么做好销售
  • 网站app生成器天河网站建设服务
  • 南京移动网站建设哪里强新网站建设都需要哪些
  • .net网站制作wordpress配置多语言包
  • 上海源码网站建设公司做短视频的网站都有哪些
  • 网络推广公司联系昔年下拉网络优化seo
  • 网站开发语言识别网站众筹该怎么做
  • 长春做网站公司长春seo公司云主机和云服务器的区别
  • 打开网站乱码怎么做网件路由器登陆网址