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

佛山免费建站找哪家做一下网站收购废钢

佛山免费建站找哪家,做一下网站收购废钢,电商网站建设渠道,网站内容图片怎么做数组模拟环形队列 实现逻辑 创建一个固定大小的数组作为队列的存储空间#xff0c;同时定义队列的头部和尾部指针#xff08;front和rear#xff09;。初始时#xff0c;将头部和尾部指针都设置为0#xff0c;表示队列为空。入队操作#xff08;enqueue#xff09;同时定义队列的头部和尾部指针front和rear。初始时将头部和尾部指针都设置为0表示队列为空。入队操作enqueue 首先判断队列是否已满。如果队列已满无法再添加新的元素直接返回。 队列满的判断 公式(rear 1) % N front说明当队列满时尾部指针的下一个位置就是头部指针的位置。解释由于环形队列的特性当尾部指针到达数组的末尾时需要将尾部指针重新设置为数组的起始位置即尾部指针加1后取模。当取模运算的结果与头部指针相等时表示队列已满。 如果队列未满将新元素添加到尾部指针所指向的位置并将尾部指针后移一位。注意如果尾部指针已经到达数组的末尾需要将尾部指针重新设置为数组的起始位置实现循环利用。 出队操作dequeue 首先判断队列是否为空。如果队列为空无法进行出队操作直接返回。 队列空的判断 公式front rear说明当队列为空时头部指针和尾部指针指向同一个位置即队列中没有有效元素。解释由于队列的初始状态是空的所以头部指针和尾部指针都初始化为0。当进行出队操作时头部指针会递增当头部指针和尾部指针相等时表示队列为空。 如果队列不为空将头部指针所指向的元素取出并将头部指针后移一位。注意如果头部指针已经到达数组的末尾需要将头部指针重新设置为数组的起始位置实现循环利用。 队列长度size 队列的长度可以通过尾部指针减去头部指针来计算但这个结果可能为负数或超过数组的大小。为了得到正确的队列长度需要进行取模运算。具体做法是先计算尾部指针减去头部指针的差值然后对数组的大小取模。 队列中的有效元素个数 公式(rear - front N) % N说明计算尾部指针和头部指针之间的差值并对数组大小取模得到队列中的有效元素个数。解释当进行入队操作时尾部指针会递增当进行出队操作时头部指针会递增。通过计算尾部指针减去头部指针的差值可以得到队列中的有效元素个数。由于差值可能为负数或超过数组的大小所以需要对数组大小取模确保结果在合法范围内。 为什么需要用到取模运算实现 取模运算的作用是将超出数组大小的索引重新映射到数组的合法索引范围内实现队列的循环利用。 在环形队列中当尾部指针后移时需要考虑数组的边界情况。如果不进行取模运算当尾部指针达到数组的末尾时无法再继续后移导致队列无法正常工作。 通过取模运算可以将尾部指针重新定位到数组的起始位置使得队列能够形成环形结构。具体来说取模运算可以将尾部指针的值限制在合法范围内即在 0 到 (maxSize-1) 的范围内循环。 例如假设数组的大小为5且当前尾部指针的位置为4即指向数组的最后一个元素。如果不进行取模运算将直接将尾部指针加1即 4 1 5超出了数组的索引范围。但是如果进行取模运算即 (4 1) % 5 0尾部指针会重新定位到数组的起始位置形成环形结构。 因此通过取模运算可以确保尾部指针始终在合法的索引范围内使得环形队列的入队操作能够正常进行。 同样的道理对于头部指针的后移操作也需要进行取模运算以保证在环形队列中正确移动。 代码实现 1定义环形队列 public class CircularQueue {private int[] queue; // 存储队列元素的数组private int front; // 头部指针private int rear; // 尾部指针private int maxSize; // 队列的最大容量public CircularQueue(int capacity) {maxSize capacity 1; // 预留一个位置用于判断队列满queue new int[maxSize];front 0;rear 0;}// 入队操作public void enqueue(int element) {if (isFull()) {System.out.println(队列已满无法入队);return;}queue[rear] element;rear (rear 1) % maxSize; // 尾部指针后移并取模}// 出队操作public int dequeue() {if (isEmpty()) {System.out.println(队列为空无法出队);return -1;}int element queue[front];front (front 1) % maxSize; // 头部指针后移并取模return element;}// 判断队列是否为空public boolean isEmpty() {return front rear;}// 判断队列是否已满public boolean isFull() {return (rear 1) % maxSize front;}// 获取队列中的有效元素个数public int size() {return (rear - front maxSize) % maxSize;} } 2使用环形队列 public class Main {public static void main(String[] args) {CircularQueue queue new CircularQueue(5); // 创建容量为5的环形队列queue.enqueue(1); // 入队操作queue.enqueue(2);queue.enqueue(3);queue.enqueue(4);queue.enqueue(5);System.out.println(队列是否为空 queue.isEmpty()); // 判断队列是否为空System.out.println(队列是否已满 queue.isFull()); // 判断队列是否已满System.out.println(队列中的有效元素个数 queue.size()); // 获取队列中的有效元素个数while (!queue.isEmpty()) {int element queue.dequeue(); // 出队操作System.out.println(出队元素 element);}} }
http://www.hkea.cn/news/14505928/

相关文章:

  • 学校网站建设方案太原网站制作优化seo公司
  • 杭州 网站建设网站免费软件app大全
  • 拍卖网站模板企业网站托管平台有哪些
  • 手机怎样用网站做成软件电商营业执照网上申请
  • 做北美市场的外贸网站网页翻译英文
  • 怎么用源码做网站做图库网站用什么系统软件
  • 怎么做网站收款二维码网站备案的网站名称
  • 网站优化方案和实施深圳网页设计培训多少钱
  • 如何建设运输网站企业策划文案论文
  • 合肥微网站网站怎么做域名解析
  • 南昌比较好的网站设计网站建设服务费怎么记账
  • 晋城推广型网站开发制作相册的软件
  • 公司营销型网站公司免费网站模板源码
  • 品牌建设题目志鸿优化设计
  • 网站开发工程师 酷html5国内网站建设
  • 苏州网站排名推广百度站长平台网页手机
  • 如何做一家网站景安建网站
  • 广州网站建设骏域网站建设专家wordpress编辑主体
  • 外贸推广网站收费吗大数据在营销中的应用
  • 吕梁网站建设kuyiso青柠影院免费观看电视剧高清8
  • 手机版网站有必要吗广州番禺钟村
  • 做的不错的网站动漫制作专业介绍
  • js网站模板免费下载营销策划方案书
  • app网站平台搭建网站建设用什么软件
  • 资深的家居行业网站模板公司官网是通过什么编辑
  • 狠狠做网站网页设计师工作室
  • html5用什么软件怎么做网站的排名优化
  • 网站的ci设计怎么做网站怎么做seo_
  • 网站吸引力整合营销传播工具有哪些
  • 邢台企业手机网站建设网站设计师薪资