安防网站模板下载,wordpress评论模板制作,wordpress二维码管理插件下载,常熟高端网站建设有题目#xff1a;
循环队列放在一维数组A[0....M-1]中#xff0c;end1指向队头元素#xff0c;end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作#xff0c;队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中#xff0c;正确的是 …有题目
循环队列放在一维数组A[0....M-1]中end1指向队头元素end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中正确的是 ( B )。 A.队空: end1 end2队满: end1 (end21)mod M B.队空: end1 end2队满: end2 (end11)mod(M-1) C.队空:end2 (end11)mod M队满:end1(end21)mod M D.队空: end1(end21)mod M队满: end2 (end11)mod(M-1) 首先什么是循环队列 1、存储在首尾循环相接的向量空间中的队列即为循环队列。 循环队列的队空和队满情况 2、假设M为MaxSize最大容量end1为头指针指向队头元素end2为尾指针指向队尾元素的后一个位置 当循环队列为空时end1end2当循环队列为满时end1end2; 为了区别这两种情况规定 ① 循环队列最多只能有 M-1 个队列元素当循环队列中只剩下一个空存储单元时队列就已经满了。 ② 初始值为空。 因此往往有两个结论: 循环队列判空的条件是end1end2 循环队列判满的条件是end1(end21)%M 那么这两个结论是怎么来的呢 根据上面讲到的 因为循环队列最多只能有 M-1 个队列元素→故 M-1 那个点就是队尾元素 又因为end2为尾指针→故end2就是对应M-1 那个点 因为end1为头指针又因为初始值为空所以end1那个点记为null 那么我们先根据这里讲的画出下面这张图 因为end1指向队头元素故我们假设队头元素为0看下图 又因为end2指向队尾元素的后一个位置即end21那么我们认为它移动了1个距离由这个移动1个距离我们推出下面的就是M也就是从左边 M-1 那移动了一个距离到这边 因此end21所在的点就是M所在的点。 所以根据下图的红色部分因为我们上面的①说了循环队列最多只能有 M-1 个队列元素当循环队列中只剩下一个空存储单元时队列就已经满了。 M与M-1之间刚好空出一个存储单元故0到M-1这部分就已经属于队满的状态而每一段的完整部分是0到M本段的M就是下一段的0这个先不理解你看到本文最后就知道其实本段的end2到下一段的end1更容易理解。 所以回到题目 循环队列放在一维数组A[0....M-1]中end1指向队头元素end2指向队尾元素的后一个位置。假设队列两端均可进行入队和出队操作队列中最多能容纳M-1个元素。初始时为空。下列判断队空和队满的条件中正确的是 ( B )。 A.队空: end1 end2队满: end1 (end21) mod M B.队空: end1 end2队满: end2 (end11) mod (M-1) C.队空:end2 (end11)mod M队满:end1(end21) mod M D.队空: end1(end21)mod M队满: end2 (end11) mod(M-1) 队空的情况我们很容易理解 因为队空所以end2null又因为循环队列是处于循环相接的环形向量之中故end2即end1故end1end2都是null 队满的情况 首先我们要了解为什么循环队列要取模即mod 为了防止指针溢出使指针的读写不超出队列的范围。 根据上面推导的图即下图 简单一点根据箭头来判断就行 0是仅仅接受end1即头指针来指向它即end1会自然帮我们找到0 end21仅仅接受end2即尾指针来指向它即end2会自然帮我们找到end21 由前面我们已得到end1 end2因为向量空间要形成一个相接的环形故肯定本段的end2就是下一段的end1但这中间有一个隐藏的关于地址衔接的过程这个隐藏过程里本来是end2去加1 即变成 end21 简简单单就可以找到下一段的头指针end1的地址了从而end1会自然帮我们找到0这是我们理所当然地想但这样做的结果会造成指针溢出造成错误而取模就是防止指针溢出所以在这个隐藏过程中我们修改一下改让end21先去取模M后得出结果即end1的地址此时算出来的end1的地址才是正确的地址这样就不会指针溢出了而且end1还能帮我们去指向0即队头元素。 也就是说 (end21) mod M结果才是end1的正确地址即 end1(end21) mod M 这就是循环队列中 从本段end2到下一段的end1之间 隐藏的 关于地址衔接时寻找end1正确地址的过程 的 内容