@@ -1812,7 +1812,7 @@
< span class = "md-ellipsis" >
8.3 Top-K 问题
8.3 Top-k 问题
< / span >
@@ -3601,17 +3601,17 @@
< / thead >
< tbody >
< tr >
< td > push() < / td >
< td > < code > push() < / code > < / td >
< td > 元素入队,即将元素添加至队尾< / td >
< td > < span class = "arithmatex" > \(O(1)\)< / span > < / td >
< / tr >
< tr >
< td > pop() < / td >
< td > < code > pop() < / code > < / td >
< td > 队首元素出队< / td >
< td > < span class = "arithmatex" > \(O(1)\)< / span > < / td >
< / tr >
< tr >
< td > peek() < / td >
< td > < code > peek() < / code > < / td >
< td > 访问队首元素< / td >
< td > < span class = "arithmatex" > \(O(1)\)< / span > < / td >
< / tr >
@@ -3888,7 +3888,7 @@
< / div >
< / div >
< h2 id = "522" > 5.2.2 队列实现< a class = "headerlink" href = "#522" title = "Permanent link" > ¶ < / a > < / h2 >
< p > 为了实现队列,我们需要一种数据结构,可以在一端添加元素,并在另一端删除元素。 链表和数组都符合要求。< / p >
< p > 为了实现队列,我们需要一种数据结构,可以在一端添加元素,并在另一端删除元素, 链表和数组都符合要求。< / p >
< h3 id = "1" > 1. 基于链表的实现< a class = "headerlink" href = "#1" title = "Permanent link" > ¶ < / a > < / h3 >
< p > 如图 5-5 所示,我们可以将链表的“头节点”和“尾节点”分别视为“队首”和“队尾”,规定队尾仅可添加节点,队首仅可删除节点。< / p >
< div class = "tabbed-set tabbed-alternate" data-tabs = "2:3" > < input checked = "checked" id = "__tabbed_2_1" name = "__tabbed_2" type = "radio" / > < input id = "__tabbed_2_2" name = "__tabbed_2" type = "radio" / > < input id = "__tabbed_2_3" name = "__tabbed_2" type = "radio" / > < div class = "tabbed-labels" > < label for = "__tabbed_2_1" > LinkedListQueue< / label > < label for = "__tabbed_2_2" > push()< / label > < label for = "__tabbed_2_3" > pop()< / label > < / div >
@@ -3929,7 +3929,7 @@
< a id = "__codelineno-12-17" name = "__codelineno-12-17" href = "#__codelineno-12-17" > < / a >
< a id = "__codelineno-12-18" name = "__codelineno-12-18" href = "#__codelineno-12-18" > < / a > < span class = "k" > def< / span > < span class = "nf" > push< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > num< / span > < span class = "p" > :< / span > < span class = "nb" > int< / span > < span class = "p" > ):< / span >
< a id = "__codelineno-12-19" name = "__codelineno-12-19" href = "#__codelineno-12-19" > < / a > < span class = "w" > < / span > < span class = "sd" > " " " 入队" " " < / span >
< a id = "__codelineno-12-20" name = "__codelineno-12-20" href = "#__codelineno-12-20" > < / a > < span class = "c1" > # 尾节点后添加 num< / span >
< a id = "__codelineno-12-20" name = "__codelineno-12-20" href = "#__codelineno-12-20" > < / a > < span class = "c1" > # 在 尾节点后添加 num< / span >
< a id = "__codelineno-12-21" name = "__codelineno-12-21" href = "#__codelineno-12-21" > < / a > < span class = "n" > node< / span > < span class = "o" > =< / span > < span class = "n" > ListNode< / span > < span class = "p" > (< / span > < span class = "n" > num< / span > < span class = "p" > )< / span >
< a id = "__codelineno-12-22" name = "__codelineno-12-22" href = "#__codelineno-12-22" > < / a > < span class = "c1" > # 如果队列为空,则令头、尾节点都指向该节点< / span >
< a id = "__codelineno-12-23" name = "__codelineno-12-23" href = "#__codelineno-12-23" > < / a > < span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _front< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
@@ -3996,7 +3996,7 @@
< a id = "__codelineno-13-28" name = "__codelineno-13-28" href = "#__codelineno-13-28" > < / a >
< a id = "__codelineno-13-29" name = "__codelineno-13-29" href = "#__codelineno-13-29" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 入队 */< / span >
< a id = "__codelineno-13-30" name = "__codelineno-13-30" href = "#__codelineno-13-30" > < / a > < span class = "w" > < / span > < span class = "kt" > void< / span > < span class = "w" > < / span > < span class = "n" > push< / span > < span class = "p" > (< / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-13-31" name = "__codelineno-13-31" href = "#__codelineno-13-31" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-13-31" name = "__codelineno-13-31" href = "#__codelineno-13-31" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-13-32" name = "__codelineno-13-32" href = "#__codelineno-13-32" > < / a > < span class = "w" > < / span > < span class = "n" > ListNode< / span > < span class = "w" > < / span > < span class = "o" > *< / span > < span class = "n" > node< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > new< / span > < span class = "w" > < / span > < span class = "n" > ListNode< / span > < span class = "p" > (< / span > < span class = "n" > num< / span > < span class = "p" > );< / span >
< a id = "__codelineno-13-33" name = "__codelineno-13-33" href = "#__codelineno-13-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 如果队列为空,则令头、尾节点都指向该节点< / span >
< a id = "__codelineno-13-34" name = "__codelineno-13-34" href = "#__codelineno-13-34" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "k" > nullptr< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
@@ -4066,7 +4066,7 @@
< a id = "__codelineno-14-20" name = "__codelineno-14-20" href = "#__codelineno-14-20" > < / a >
< a id = "__codelineno-14-21" name = "__codelineno-14-21" href = "#__codelineno-14-21" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 入队 */< / span >
< a id = "__codelineno-14-22" name = "__codelineno-14-22" href = "#__codelineno-14-22" > < / a > < span class = "w" > < / span > < span class = "kd" > public< / span > < span class = "w" > < / span > < span class = "kt" > void< / span > < span class = "w" > < / span > < span class = "nf" > push< / span > < span class = "p" > (< / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-14-23" name = "__codelineno-14-23" href = "#__codelineno-14-23" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-14-23" name = "__codelineno-14-23" href = "#__codelineno-14-23" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-14-24" name = "__codelineno-14-24" href = "#__codelineno-14-24" > < / a > < span class = "w" > < / span > < span class = "n" > ListNode< / span > < span class = "w" > < / span > < span class = "n" > node< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > new< / span > < span class = "w" > < / span > < span class = "n" > ListNode< / span > < span class = "p" > (< / span > < span class = "n" > num< / span > < span class = "p" > );< / span >
< a id = "__codelineno-14-25" name = "__codelineno-14-25" href = "#__codelineno-14-25" > < / a > < span class = "w" > < / span > < span class = "c1" > // 如果队列为空,则令头、尾节点都指向该节点< / span >
< a id = "__codelineno-14-26" name = "__codelineno-14-26" href = "#__codelineno-14-26" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "kc" > null< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
@@ -4132,7 +4132,7 @@
< a id = "__codelineno-15-20" name = "__codelineno-15-20" href = "#__codelineno-15-20" > < / a >
< a id = "__codelineno-15-21" name = "__codelineno-15-21" href = "#__codelineno-15-21" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 入队 */< / span >
< a id = "__codelineno-15-22" name = "__codelineno-15-22" href = "#__codelineno-15-22" > < / a > < span class = "w" > < / span > < span class = "k" > public< / span > < span class = "w" > < / span > < span class = "k" > void< / span > < span class = "w" > < / span > < span class = "nf" > Push< / span > < span class = "p" > (< / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-15-23" name = "__codelineno-15-23" href = "#__codelineno-15-23" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-15-23" name = "__codelineno-15-23" href = "#__codelineno-15-23" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-15-24" name = "__codelineno-15-24" href = "#__codelineno-15-24" > < / a > < span class = "w" > < / span > < span class = "n" > ListNode< / span > < span class = "w" > < / span > < span class = "n" > node< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > new< / span > < span class = "p" > (< / span > < span class = "n" > num< / span > < span class = "p" > );< / span >
< a id = "__codelineno-15-25" name = "__codelineno-15-25" href = "#__codelineno-15-25" > < / a > < span class = "w" > < / span > < span class = "c1" > // 如果队列为空,则令头、尾节点都指向该节点< / span >
< a id = "__codelineno-15-26" name = "__codelineno-15-26" href = "#__codelineno-15-26" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "k" > null< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
@@ -4253,7 +4253,7 @@
< a id = "__codelineno-17-18" name = "__codelineno-17-18" href = "#__codelineno-17-18" > < / a >
< a id = "__codelineno-17-19" name = "__codelineno-17-19" href = "#__codelineno-17-19" > < / a > < span class = "cm" > /* 入队 */< / span >
< a id = "__codelineno-17-20" name = "__codelineno-17-20" href = "#__codelineno-17-20" > < / a > < span class = "kd" > func< / span > < span class = "nf" > push< / span > < span class = "p" > (< / span > < span class = "n" > num< / span > < span class = "p" > :< / span > < span class = "nb" > Int< / span > < span class = "p" > )< / span > < span class = "p" > {< / span >
< a id = "__codelineno-17-21" name = "__codelineno-17-21" href = "#__codelineno-17-21" > < / a > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-17-21" name = "__codelineno-17-21" href = "#__codelineno-17-21" > < / a > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-17-22" name = "__codelineno-17-22" href = "#__codelineno-17-22" > < / a > < span class = "kd" > let< / span > < span class = "nv" > node< / span > < span class = "p" > =< / span > < span class = "n" > ListNode< / span > < span class = "p" > (< / span > < span class = "n" > x< / span > < span class = "p" > :< / span > < span class = "n" > num< / span > < span class = "p" > )< / span >
< a id = "__codelineno-17-23" name = "__codelineno-17-23" href = "#__codelineno-17-23" > < / a > < span class = "c1" > // 如果队列为空,则令头、尾节点都指向该节点< / span >
< a id = "__codelineno-17-24" name = "__codelineno-17-24" href = "#__codelineno-17-24" > < / a > < span class = "k" > if< / span > < span class = "n" > front< / span > < span class = "p" > ==< / span > < span class = "kc" > nil< / span > < span class = "p" > {< / span >
@@ -4323,7 +4323,7 @@
< a id = "__codelineno-18-21" name = "__codelineno-18-21" href = "#__codelineno-18-21" > < / a >
< a id = "__codelineno-18-22" name = "__codelineno-18-22" href = "#__codelineno-18-22" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 入队 */< / span >
< a id = "__codelineno-18-23" name = "__codelineno-18-23" href = "#__codelineno-18-23" > < / a > < span class = "w" > < / span > < span class = "nx" > push< / span > < span class = "p" > (< / span > < span class = "nx" > num< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-18-24" name = "__codelineno-18-24" href = "#__codelineno-18-24" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-18-24" name = "__codelineno-18-24" href = "#__codelineno-18-24" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-18-25" name = "__codelineno-18-25" href = "#__codelineno-18-25" > < / a > < span class = "w" > < / span > < span class = "kd" > const< / span > < span class = "w" > < / span > < span class = "nx" > node< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "ow" > new< / span > < span class = "w" > < / span > < span class = "nx" > ListNode< / span > < span class = "p" > (< / span > < span class = "nx" > num< / span > < span class = "p" > );< / span >
< a id = "__codelineno-18-26" name = "__codelineno-18-26" href = "#__codelineno-18-26" > < / a > < span class = "w" > < / span > < span class = "c1" > // 如果队列为空,则令头、尾节点都指向该节点< / span >
< a id = "__codelineno-18-27" name = "__codelineno-18-27" href = "#__codelineno-18-27" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "o" > !< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "err" > #< / span > < span class = "nx" > front< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
@@ -4389,7 +4389,7 @@
< a id = "__codelineno-19-21" name = "__codelineno-19-21" href = "#__codelineno-19-21" > < / a >
< a id = "__codelineno-19-22" name = "__codelineno-19-22" href = "#__codelineno-19-22" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 入队 */< / span >
< a id = "__codelineno-19-23" name = "__codelineno-19-23" href = "#__codelineno-19-23" > < / a > < span class = "w" > < / span > < span class = "nx" > push< / span > < span class = "p" > (< / span > < span class = "nx" > num< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "kt" > number< / span > < span class = "p" > )< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "ow" > void< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-19-24" name = "__codelineno-19-24" href = "#__codelineno-19-24" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-19-24" name = "__codelineno-19-24" href = "#__codelineno-19-24" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-19-25" name = "__codelineno-19-25" href = "#__codelineno-19-25" > < / a > < span class = "w" > < / span > < span class = "kd" > const< / span > < span class = "w" > < / span > < span class = "nx" > node< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "ow" > new< / span > < span class = "w" > < / span > < span class = "nx" > ListNode< / span > < span class = "p" > (< / span > < span class = "nx" > num< / span > < span class = "p" > );< / span >
< a id = "__codelineno-19-26" name = "__codelineno-19-26" href = "#__codelineno-19-26" > < / a > < span class = "w" > < / span > < span class = "c1" > // 如果队列为空,则令头、尾节点都指向该节点< / span >
< a id = "__codelineno-19-27" name = "__codelineno-19-27" href = "#__codelineno-19-27" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "o" > !< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > front< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
@@ -4456,7 +4456,7 @@
< a id = "__codelineno-20-21" name = "__codelineno-20-21" href = "#__codelineno-20-21" > < / a >
< a id = "__codelineno-20-22" name = "__codelineno-20-22" href = "#__codelineno-20-22" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 入队 */< / span >
< a id = "__codelineno-20-23" name = "__codelineno-20-23" href = "#__codelineno-20-23" > < / a > < span class = "w" > < / span > < span class = "kt" > void< / span > < span class = "w" > < / span > < span class = "n" > push< / span > < span class = "p" > (< / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > _num< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-20-24" name = "__codelineno-20-24" href = "#__codelineno-20-24" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 _num< / span >
< a id = "__codelineno-20-24" name = "__codelineno-20-24" href = "#__codelineno-20-24" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 _num< / span >
< a id = "__codelineno-20-25" name = "__codelineno-20-25" href = "#__codelineno-20-25" > < / a > < span class = "w" > < / span > < span class = "kd" > final< / span > < span class = "w" > < / span > < span class = "n" > node< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > ListNode< / span > < span class = "p" > (< / span > < span class = "n" > _num< / span > < span class = "p" > );< / span >
< a id = "__codelineno-20-26" name = "__codelineno-20-26" href = "#__codelineno-20-26" > < / a > < span class = "w" > < / span > < span class = "c1" > // 如果队列为空,则令头、尾节点都指向该节点< / span >
< a id = "__codelineno-20-27" name = "__codelineno-20-27" href = "#__codelineno-20-27" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > _front< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "kc" > null< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
@@ -4530,7 +4530,7 @@
< a id = "__codelineno-21-27" name = "__codelineno-21-27" href = "#__codelineno-21-27" > < / a >
< a id = "__codelineno-21-28" name = "__codelineno-21-28" href = "#__codelineno-21-28" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 入队 */< / span >
< a id = "__codelineno-21-29" name = "__codelineno-21-29" href = "#__codelineno-21-29" > < / a > < span class = "w" > < / span > < span class = "k" > pub< / span > < span class = "w" > < / span > < span class = "k" > fn< / span > < span class = "nf" > push< / span > < span class = "p" > (< / span > < span class = "o" > & < / span > < span class = "k" > mut< / span > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "n" > num< / span > : < span class = "nc" > T< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-21-30" name = "__codelineno-21-30" href = "#__codelineno-21-30" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-21-30" name = "__codelineno-21-30" href = "#__codelineno-21-30" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-21-31" name = "__codelineno-21-31" href = "#__codelineno-21-31" > < / a > < span class = "w" > < / span > < span class = "kd" > let< / span > < span class = "w" > < / span > < span class = "n" > new_rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > ListNode< / span > ::< span class = "n" > new< / span > < span class = "p" > (< / span > < span class = "n" > num< / span > < span class = "p" > );< / span >
< a id = "__codelineno-21-32" name = "__codelineno-21-32" href = "#__codelineno-21-32" > < / a > < span class = "w" > < / span > < span class = "k" > match< / span > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > rear< / span > < span class = "p" > .< / span > < span class = "n" > take< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-21-33" name = "__codelineno-21-33" href = "#__codelineno-21-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 如果队列不为空,则将该节点添加到尾节点后< / span >
@@ -4713,7 +4713,7 @@
< a id = "__codelineno-23-44" name = "__codelineno-23-44" href = "#__codelineno-23-44" > < / a >
< a id = "__codelineno-23-45" name = "__codelineno-23-45" href = "#__codelineno-23-45" > < / a > < span class = "w" > < / span > < span class = "c1" > // 入队< / span >
< a id = "__codelineno-23-46" name = "__codelineno-23-46" href = "#__codelineno-23-46" > < / a > < span class = "w" > < / span > < span class = "kr" > pub< / span > < span class = "w" > < / span > < span class = "k" > fn< / span > < span class = "w" > < / span > < span class = "n" > push< / span > < span class = "p" > (< / span > < span class = "n" > self< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "o" > *< / span > < span class = "n" > Self< / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "n" > T< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > !< / span > < span class = "kt" > void< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-23-47" name = "__codelineno-23-47" href = "#__codelineno-23-47" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-23-47" name = "__codelineno-23-47" href = "#__codelineno-23-47" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-23-48" name = "__codelineno-23-48" href = "#__codelineno-23-48" > < / a > < span class = "w" > < / span > < span class = "kr" > var< / span > < span class = "w" > < / span > < span class = "n" > node< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > try< / span > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > mem_allocator< / span > < span class = "p" > .< / span > < span class = "n" > create< / span > < span class = "p" > (< / span > < span class = "n" > inc< / span > < span class = "p" > .< / span > < span class = "n" > ListNode< / span > < span class = "p" > (< / span > < span class = "n" > T< / span > < span class = "p" > ));< / span >
< a id = "__codelineno-23-49" name = "__codelineno-23-49" href = "#__codelineno-23-49" > < / a > < span class = "w" > < / span > < span class = "n" > node< / span > < span class = "p" > .< / span > < span class = "n" > init< / span > < span class = "p" > (< / span > < span class = "n" > num< / span > < span class = "p" > );< / span >
< a id = "__codelineno-23-50" name = "__codelineno-23-50" href = "#__codelineno-23-50" > < / a > < span class = "w" > < / span > < span class = "c1" > // 如果队列为空,则令头、尾节点都指向该节点< / span >
@@ -4809,8 +4809,8 @@
< a id = "__codelineno-24-23" name = "__codelineno-24-23" href = "#__codelineno-24-23" > < / a > < span class = "w" > < / span > < span class = "sd" > " " " 入队" " " < / span >
< a id = "__codelineno-24-24" name = "__codelineno-24-24" href = "#__codelineno-24-24" > < / a > < span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _size< / span > < span class = "o" > ==< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > capacity< / span > < span class = "p" > ():< / span >
< a id = "__codelineno-24-25" name = "__codelineno-24-25" href = "#__codelineno-24-25" > < / a > < span class = "k" > raise< / span > < span class = "ne" > IndexError< / span > < span class = "p" > (< / span > < span class = "s2" > " 队列已满" < / span > < span class = "p" > )< / span >
< a id = "__codelineno-24-26" name = "__codelineno-24-26" href = "#__codelineno-24-26" > < / a > < span class = "c1" > # 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-24-27" name = "__codelineno-24-27" href = "#__codelineno-24-27" > < / a > < span class = "c1" > # 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-24-26" name = "__codelineno-24-26" href = "#__codelineno-24-26" > < / a > < span class = "c1" > # 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-24-27" name = "__codelineno-24-27" href = "#__codelineno-24-27" > < / a > < span class = "c1" > # 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-24-28" name = "__codelineno-24-28" href = "#__codelineno-24-28" > < / a > < span class = "n" > rear< / span > < span class = "p" > :< / span > < span class = "nb" > int< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _front< / span > < span class = "o" > +< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _size< / span > < span class = "p" > )< / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > capacity< / span > < span class = "p" > ()< / span >
< a id = "__codelineno-24-29" name = "__codelineno-24-29" href = "#__codelineno-24-29" > < / a > < span class = "c1" > # 将 num 添加至队尾< / span >
< a id = "__codelineno-24-30" name = "__codelineno-24-30" href = "#__codelineno-24-30" > < / a > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _nums< / span > < span class = "p" > [< / span > < span class = "n" > rear< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > num< / span >
@@ -4819,7 +4819,7 @@
< a id = "__codelineno-24-33" name = "__codelineno-24-33" href = "#__codelineno-24-33" > < / a > < span class = "k" > def< / span > < span class = "nf" > pop< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span > < span class = "o" > -> < / span > < span class = "nb" > int< / span > < span class = "p" > :< / span >
< a id = "__codelineno-24-34" name = "__codelineno-24-34" href = "#__codelineno-24-34" > < / a > < span class = "w" > < / span > < span class = "sd" > " " " 出队" " " < / span >
< a id = "__codelineno-24-35" name = "__codelineno-24-35" href = "#__codelineno-24-35" > < / a > < span class = "n" > num< / span > < span class = "p" > :< / span > < span class = "nb" > int< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > peek< / span > < span class = "p" > ()< / span >
< a id = "__codelineno-24-36" name = "__codelineno-24-36" href = "#__codelineno-24-36" > < / a > < span class = "c1" > # 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-24-36" name = "__codelineno-24-36" href = "#__codelineno-24-36" > < / a > < span class = "c1" > # 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-24-37" name = "__codelineno-24-37" href = "#__codelineno-24-37" > < / a > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _front< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _front< / span > < span class = "o" > +< / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > capacity< / span > < span class = "p" > ()< / span >
< a id = "__codelineno-24-38" name = "__codelineno-24-38" href = "#__codelineno-24-38" > < / a > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _size< / span > < span class = "o" > -=< / span > < span class = "mi" > 1< / span >
< a id = "__codelineno-24-39" name = "__codelineno-24-39" href = "#__codelineno-24-39" > < / a > < span class = "k" > return< / span > < span class = "n" > num< / span >
@@ -4883,7 +4883,7 @@
< a id = "__codelineno-25-40" name = "__codelineno-25-40" href = "#__codelineno-25-40" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-25-41" name = "__codelineno-25-41" href = "#__codelineno-25-41" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-25-42" name = "__codelineno-25-42" href = "#__codelineno-25-42" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-25-43" name = "__codelineno-25-43" href = "#__codelineno-25-43" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-25-43" name = "__codelineno-25-43" href = "#__codelineno-25-43" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-25-44" name = "__codelineno-25-44" href = "#__codelineno-25-44" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "n" > queSize< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > queCapacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-25-45" name = "__codelineno-25-45" href = "#__codelineno-25-45" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-25-46" name = "__codelineno-25-46" href = "#__codelineno-25-46" > < / a > < span class = "w" > < / span > < span class = "n" > nums< / span > < span class = "p" > [< / span > < span class = "n" > rear< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -4893,7 +4893,7 @@
< a id = "__codelineno-25-50" name = "__codelineno-25-50" href = "#__codelineno-25-50" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-25-51" name = "__codelineno-25-51" href = "#__codelineno-25-51" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > pop< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-25-52" name = "__codelineno-25-52" href = "#__codelineno-25-52" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > peek< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-25-53" name = "__codelineno-25-53" href = "#__codelineno-25-53" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-25-53" name = "__codelineno-25-53" href = "#__codelineno-25-53" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-25-54" name = "__codelineno-25-54" href = "#__codelineno-25-54" > < / a > < span class = "w" > < / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > queCapacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-25-55" name = "__codelineno-25-55" href = "#__codelineno-25-55" > < / a > < span class = "w" > < / span > < span class = "n" > queSize< / span > < span class = "o" > --< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-25-56" name = "__codelineno-25-56" href = "#__codelineno-25-56" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -4951,8 +4951,8 @@
< a id = "__codelineno-26-30" name = "__codelineno-26-30" href = "#__codelineno-26-30" > < / a > < span class = "w" > < / span > < span class = "n" > System< / span > < span class = "p" > .< / span > < span class = "na" > out< / span > < span class = "p" > .< / span > < span class = "na" > println< / span > < span class = "p" > (< / span > < span class = "s" > " 队列已满" < / span > < span class = "p" > );< / span >
< a id = "__codelineno-26-31" name = "__codelineno-26-31" href = "#__codelineno-26-31" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-26-32" name = "__codelineno-26-32" href = "#__codelineno-26-32" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-26-33" name = "__codelineno-26-33" href = "#__codelineno-26-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-26-34" name = "__codelineno-26-34" href = "#__codelineno-26-34" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-26-33" name = "__codelineno-26-33" href = "#__codelineno-26-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-26-34" name = "__codelineno-26-34" href = "#__codelineno-26-34" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-26-35" name = "__codelineno-26-35" href = "#__codelineno-26-35" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "n" > queSize< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > capacity< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-26-36" name = "__codelineno-26-36" href = "#__codelineno-26-36" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-26-37" name = "__codelineno-26-37" href = "#__codelineno-26-37" > < / a > < span class = "w" > < / span > < span class = "n" > nums< / span > < span class = "o" > [< / span > < span class = "n" > rear< / span > < span class = "o" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -4962,7 +4962,7 @@
< a id = "__codelineno-26-41" name = "__codelineno-26-41" href = "#__codelineno-26-41" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-26-42" name = "__codelineno-26-42" href = "#__codelineno-26-42" > < / a > < span class = "w" > < / span > < span class = "kd" > public< / span > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "nf" > pop< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-26-43" name = "__codelineno-26-43" href = "#__codelineno-26-43" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > peek< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-26-44" name = "__codelineno-26-44" href = "#__codelineno-26-44" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-26-44" name = "__codelineno-26-44" href = "#__codelineno-26-44" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-26-45" name = "__codelineno-26-45" href = "#__codelineno-26-45" > < / a > < span class = "w" > < / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > capacity< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-26-46" name = "__codelineno-26-46" href = "#__codelineno-26-46" > < / a > < span class = "w" > < / span > < span class = "n" > queSize< / span > < span class = "o" > --< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-26-47" name = "__codelineno-26-47" href = "#__codelineno-26-47" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -5020,8 +5020,8 @@
< a id = "__codelineno-27-30" name = "__codelineno-27-30" href = "#__codelineno-27-30" > < / a > < span class = "w" > < / span > < span class = "n" > Console< / span > < span class = "p" > .< / span > < span class = "n" > WriteLine< / span > < span class = "p" > (< / span > < span class = "s" > " 队列已满" < / span > < span class = "p" > );< / span >
< a id = "__codelineno-27-31" name = "__codelineno-27-31" href = "#__codelineno-27-31" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-27-32" name = "__codelineno-27-32" href = "#__codelineno-27-32" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-27-33" name = "__codelineno-27-33" href = "#__codelineno-27-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-27-34" name = "__codelineno-27-34" href = "#__codelineno-27-34" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-27-33" name = "__codelineno-27-33" href = "#__codelineno-27-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-27-34" name = "__codelineno-27-34" href = "#__codelineno-27-34" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-27-35" name = "__codelineno-27-35" href = "#__codelineno-27-35" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "n" > queSize< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > Capacity< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-27-36" name = "__codelineno-27-36" href = "#__codelineno-27-36" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-27-37" name = "__codelineno-27-37" href = "#__codelineno-27-37" > < / a > < span class = "w" > < / span > < span class = "n" > nums< / span > < span class = "p" > [< / span > < span class = "n" > rear< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -5031,7 +5031,7 @@
< a id = "__codelineno-27-41" name = "__codelineno-27-41" href = "#__codelineno-27-41" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-27-42" name = "__codelineno-27-42" href = "#__codelineno-27-42" > < / a > < span class = "w" > < / span > < span class = "k" > public< / span > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "nf" > Pop< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-27-43" name = "__codelineno-27-43" href = "#__codelineno-27-43" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > Peek< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-27-44" name = "__codelineno-27-44" href = "#__codelineno-27-44" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-27-44" name = "__codelineno-27-44" href = "#__codelineno-27-44" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-27-45" name = "__codelineno-27-45" href = "#__codelineno-27-45" > < / a > < span class = "w" > < / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "m" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > Capacity< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-27-46" name = "__codelineno-27-46" href = "#__codelineno-27-46" > < / a > < span class = "w" > < / span > < span class = "n" > queSize< / span > < span class = "o" > --< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-27-47" name = "__codelineno-27-47" href = "#__codelineno-27-47" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -5091,8 +5091,8 @@
< a id = "__codelineno-28-32" name = "__codelineno-28-32" href = "#__codelineno-28-32" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > queSize< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > queCapacity< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-28-33" name = "__codelineno-28-33" href = "#__codelineno-28-33" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span >
< a id = "__codelineno-28-34" name = "__codelineno-28-34" href = "#__codelineno-28-34" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-28-35" name = "__codelineno-28-35" href = "#__codelineno-28-35" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-28-36" name = "__codelineno-28-36" href = "#__codelineno-28-36" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-28-35" name = "__codelineno-28-35" href = "#__codelineno-28-35" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-28-36" name = "__codelineno-28-36" href = "#__codelineno-28-36" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-28-37" name = "__codelineno-28-37" href = "#__codelineno-28-37" > < / a > < span class = "w" > < / span > < span class = "nx" > rear< / span > < span class = "w" > < / span > < span class = "o" > :=< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > queSize< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > queCapacity< / span >
< a id = "__codelineno-28-38" name = "__codelineno-28-38" href = "#__codelineno-28-38" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-28-39" name = "__codelineno-28-39" href = "#__codelineno-28-39" > < / a > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > nums< / span > < span class = "p" > [< / span > < span class = "nx" > rear< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "p" > =< / span > < span class = "w" > < / span > < span class = "nx" > num< / span >
@@ -5102,7 +5102,7 @@
< a id = "__codelineno-28-43" name = "__codelineno-28-43" href = "#__codelineno-28-43" > < / a > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-28-44" name = "__codelineno-28-44" href = "#__codelineno-28-44" > < / a > < span class = "kd" > func< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nx" > q< / span > < span class = "w" > < / span > < span class = "o" > *< / span > < span class = "nx" > arrayQueue< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "nx" > pop< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "kt" > any< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-28-45" name = "__codelineno-28-45" href = "#__codelineno-28-45" > < / a > < span class = "w" > < / span > < span class = "nx" > num< / span > < span class = "w" > < / span > < span class = "o" > :=< / span > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > peek< / span > < span class = "p" > ()< / span >
< a id = "__codelineno-28-46" name = "__codelineno-28-46" href = "#__codelineno-28-46" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-28-46" name = "__codelineno-28-46" href = "#__codelineno-28-46" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-28-47" name = "__codelineno-28-47" href = "#__codelineno-28-47" > < / a > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "p" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > queCapacity< / span >
< a id = "__codelineno-28-48" name = "__codelineno-28-48" href = "#__codelineno-28-48" > < / a > < span class = "w" > < / span > < span class = "nx" > q< / span > < span class = "p" > .< / span > < span class = "nx" > queSize< / span > < span class = "o" > --< / span >
< a id = "__codelineno-28-49" name = "__codelineno-28-49" href = "#__codelineno-28-49" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "nx" > num< / span >
@@ -5160,8 +5160,8 @@
< a id = "__codelineno-29-30" name = "__codelineno-29-30" href = "#__codelineno-29-30" > < / a > < span class = "bp" > print< / span > < span class = "p" > (< / span > < span class = "s" > " 队列已满" < / span > < span class = "p" > )< / span >
< a id = "__codelineno-29-31" name = "__codelineno-29-31" href = "#__codelineno-29-31" > < / a > < span class = "k" > return< / span >
< a id = "__codelineno-29-32" name = "__codelineno-29-32" href = "#__codelineno-29-32" > < / a > < span class = "p" > }< / span >
< a id = "__codelineno-29-33" name = "__codelineno-29-33" href = "#__codelineno-29-33" > < / a > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-29-34" name = "__codelineno-29-34" href = "#__codelineno-29-34" > < / a > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-29-33" name = "__codelineno-29-33" href = "#__codelineno-29-33" > < / a > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-29-34" name = "__codelineno-29-34" href = "#__codelineno-29-34" > < / a > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-29-35" name = "__codelineno-29-35" href = "#__codelineno-29-35" > < / a > < span class = "kd" > let< / span > < span class = "nv" > rear< / span > < span class = "p" > =< / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "o" > +< / span > < span class = "n" > queSize< / span > < span class = "p" > )< / span > < span class = "o" > %< / span > < span class = "n" > capacity< / span > < span class = "p" > ()< / span >
< a id = "__codelineno-29-36" name = "__codelineno-29-36" href = "#__codelineno-29-36" > < / a > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-29-37" name = "__codelineno-29-37" href = "#__codelineno-29-37" > < / a > < span class = "n" > nums< / span > < span class = "p" > [< / span > < span class = "n" > rear< / span > < span class = "p" > ]< / span > < span class = "p" > =< / span > < span class = "n" > num< / span >
@@ -5172,7 +5172,7 @@
< a id = "__codelineno-29-42" name = "__codelineno-29-42" href = "#__codelineno-29-42" > < / a > < span class = "p" > @< / span > < span class = "n" > discardableResult< / span >
< a id = "__codelineno-29-43" name = "__codelineno-29-43" href = "#__codelineno-29-43" > < / a > < span class = "kd" > func< / span > < span class = "nf" > pop< / span > < span class = "p" > ()< / span > < span class = "p" > -> < / span > < span class = "nb" > Int< / span > < span class = "p" > {< / span >
< a id = "__codelineno-29-44" name = "__codelineno-29-44" href = "#__codelineno-29-44" > < / a > < span class = "kd" > let< / span > < span class = "nv" > num< / span > < span class = "p" > =< / span > < span class = "n" > peek< / span > < span class = "p" > ()< / span >
< a id = "__codelineno-29-45" name = "__codelineno-29-45" href = "#__codelineno-29-45" > < / a > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-29-45" name = "__codelineno-29-45" href = "#__codelineno-29-45" > < / a > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-29-46" name = "__codelineno-29-46" href = "#__codelineno-29-46" > < / a > < span class = "n" > front< / span > < span class = "p" > =< / span > < span class = "p" > (< / span > < span class = "n" > front< / span > < span class = "o" > +< / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span > < span class = "o" > %< / span > < span class = "n" > capacity< / span > < span class = "p" > ()< / span >
< a id = "__codelineno-29-47" name = "__codelineno-29-47" href = "#__codelineno-29-47" > < / a > < span class = "n" > queSize< / span > < span class = "o" > -=< / span > < span class = "mi" > 1< / span >
< a id = "__codelineno-29-48" name = "__codelineno-29-48" href = "#__codelineno-29-48" > < / a > < span class = "k" > return< / span > < span class = "n" > num< / span >
@@ -5230,8 +5230,8 @@
< a id = "__codelineno-30-29" name = "__codelineno-30-29" href = "#__codelineno-30-29" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "s1" > ' 队列已满' < / span > < span class = "p" > );< / span >
< a id = "__codelineno-30-30" name = "__codelineno-30-30" href = "#__codelineno-30-30" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-30-31" name = "__codelineno-30-31" href = "#__codelineno-30-31" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-30-32" name = "__codelineno-30-32" href = "#__codelineno-30-32" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-30-33" name = "__codelineno-30-33" href = "#__codelineno-30-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-30-32" name = "__codelineno-30-32" href = "#__codelineno-30-32" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-30-33" name = "__codelineno-30-33" href = "#__codelineno-30-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-30-34" name = "__codelineno-30-34" href = "#__codelineno-30-34" > < / a > < span class = "w" > < / span > < span class = "kd" > const< / span > < span class = "w" > < / span > < span class = "nx" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "err" > #< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > size< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > capacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-30-35" name = "__codelineno-30-35" href = "#__codelineno-30-35" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-30-36" name = "__codelineno-30-36" href = "#__codelineno-30-36" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "err" > #< / span > < span class = "nx" > nums< / span > < span class = "p" > [< / span > < span class = "nx" > rear< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "nx" > num< / span > < span class = "p" > ;< / span >
@@ -5241,7 +5241,7 @@
< a id = "__codelineno-30-40" name = "__codelineno-30-40" href = "#__codelineno-30-40" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-30-41" name = "__codelineno-30-41" href = "#__codelineno-30-41" > < / a > < span class = "w" > < / span > < span class = "nx" > pop< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-30-42" name = "__codelineno-30-42" href = "#__codelineno-30-42" > < / a > < span class = "w" > < / span > < span class = "kd" > const< / span > < span class = "w" > < / span > < span class = "nx" > num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > peek< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-30-43" name = "__codelineno-30-43" href = "#__codelineno-30-43" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-30-43" name = "__codelineno-30-43" href = "#__codelineno-30-43" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-30-44" name = "__codelineno-30-44" href = "#__codelineno-30-44" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "err" > #< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "err" > #< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "mf" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > capacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-30-45" name = "__codelineno-30-45" href = "#__codelineno-30-45" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "err" > #< / span > < span class = "nx" > queSize< / span > < span class = "o" > --< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-30-46" name = "__codelineno-30-46" href = "#__codelineno-30-46" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "nx" > num< / span > < span class = "p" > ;< / span >
@@ -5298,8 +5298,8 @@
< a id = "__codelineno-31-30" name = "__codelineno-31-30" href = "#__codelineno-31-30" > < / a > < span class = "w" > < / span > < span class = "nx" > console< / span > < span class = "p" > .< / span > < span class = "nx" > log< / span > < span class = "p" > (< / span > < span class = "s1" > ' 队列已满' < / span > < span class = "p" > );< / span >
< a id = "__codelineno-31-31" name = "__codelineno-31-31" href = "#__codelineno-31-31" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-31-32" name = "__codelineno-31-32" href = "#__codelineno-31-32" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-31-33" name = "__codelineno-31-33" href = "#__codelineno-31-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-31-34" name = "__codelineno-31-34" href = "#__codelineno-31-34" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-31-33" name = "__codelineno-31-33" href = "#__codelineno-31-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-31-34" name = "__codelineno-31-34" href = "#__codelineno-31-34" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-31-35" name = "__codelineno-31-35" href = "#__codelineno-31-35" > < / a > < span class = "w" > < / span > < span class = "kd" > const< / span > < span class = "w" > < / span > < span class = "nx" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > queSize< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > capacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-31-36" name = "__codelineno-31-36" href = "#__codelineno-31-36" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-31-37" name = "__codelineno-31-37" href = "#__codelineno-31-37" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > nums< / span > < span class = "p" > [< / span > < span class = "nx" > rear< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "nx" > num< / span > < span class = "p" > ;< / span >
@@ -5309,7 +5309,7 @@
< a id = "__codelineno-31-41" name = "__codelineno-31-41" href = "#__codelineno-31-41" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-31-42" name = "__codelineno-31-42" href = "#__codelineno-31-42" > < / a > < span class = "w" > < / span > < span class = "nx" > pop< / span > < span class = "p" > ()< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "kt" > number< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-31-43" name = "__codelineno-31-43" href = "#__codelineno-31-43" > < / a > < span class = "w" > < / span > < span class = "kd" > const< / span > < span class = "w" > < / span > < span class = "nx" > num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > peek< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-31-44" name = "__codelineno-31-44" href = "#__codelineno-31-44" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-31-44" name = "__codelineno-31-44" href = "#__codelineno-31-44" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-31-45" name = "__codelineno-31-45" href = "#__codelineno-31-45" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "mf" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > capacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-31-46" name = "__codelineno-31-46" href = "#__codelineno-31-46" > < / a > < span class = "w" > < / span > < span class = "k" > this< / span > < span class = "p" > .< / span > < span class = "nx" > queSize< / span > < span class = "o" > --< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-31-47" name = "__codelineno-31-47" href = "#__codelineno-31-47" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "nx" > num< / span > < span class = "p" > ;< / span >
@@ -5365,8 +5365,8 @@
< a id = "__codelineno-32-29" name = "__codelineno-32-29" href = "#__codelineno-32-29" > < / a > < span class = "w" > < / span > < span class = "k" > if< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > _queSize< / span > < span class = "w" > < / span > < span class = "o" > ==< / span > < span class = "w" > < / span > < span class = "n" > capaCity< / span > < span class = "p" > ())< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-32-30" name = "__codelineno-32-30" href = "#__codelineno-32-30" > < / a > < span class = "w" > < / span > < span class = "k" > throw< / span > < span class = "w" > < / span > < span class = "n" > Exception< / span > < span class = "p" > (< / span > < span class = "s2" > " 队列已满" < / span > < span class = "p" > );< / span >
< a id = "__codelineno-32-31" name = "__codelineno-32-31" href = "#__codelineno-32-31" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-32-32" name = "__codelineno-32-32" href = "#__codelineno-32-32" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-32-33" name = "__codelineno-32-33" href = "#__codelineno-32-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-32-32" name = "__codelineno-32-32" href = "#__codelineno-32-32" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-32-33" name = "__codelineno-32-33" href = "#__codelineno-32-33" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-32-34" name = "__codelineno-32-34" href = "#__codelineno-32-34" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > _front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "n" > _queSize< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > capaCity< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-32-35" name = "__codelineno-32-35" href = "#__codelineno-32-35" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 _num 添加至队尾< / span >
< a id = "__codelineno-32-36" name = "__codelineno-32-36" href = "#__codelineno-32-36" > < / a > < span class = "w" > < / span > < span class = "n" > _nums< / span > < span class = "p" > [< / span > < span class = "n" > rear< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > _num< / span > < span class = "p" > ;< / span >
@@ -5376,7 +5376,7 @@
< a id = "__codelineno-32-40" name = "__codelineno-32-40" href = "#__codelineno-32-40" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-32-41" name = "__codelineno-32-41" href = "#__codelineno-32-41" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > pop< / span > < span class = "p" > ()< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-32-42" name = "__codelineno-32-42" href = "#__codelineno-32-42" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > _num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > peek< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-32-43" name = "__codelineno-32-43" href = "#__codelineno-32-43" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-32-43" name = "__codelineno-32-43" href = "#__codelineno-32-43" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-32-44" name = "__codelineno-32-44" href = "#__codelineno-32-44" > < / a > < span class = "w" > < / span > < span class = "n" > _front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > _front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "m" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > capaCity< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-32-45" name = "__codelineno-32-45" href = "#__codelineno-32-45" > < / a > < span class = "w" > < / span > < span class = "n" > _queSize< / span > < span class = "o" > --< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-32-46" name = "__codelineno-32-46" href = "#__codelineno-32-46" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "n" > _num< / span > < span class = "p" > ;< / span >
@@ -5443,8 +5443,8 @@
< a id = "__codelineno-33-38" name = "__codelineno-33-38" href = "#__codelineno-33-38" > < / a > < span class = "w" > < / span > < span class = "fm" > println!< / span > < span class = "p" > (< / span > < span class = "s" > " 队列已满" < / span > < span class = "p" > );< / span >
< a id = "__codelineno-33-39" name = "__codelineno-33-39" href = "#__codelineno-33-39" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-33-40" name = "__codelineno-33-40" href = "#__codelineno-33-40" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-33-41" name = "__codelineno-33-41" href = "#__codelineno-33-41" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-33-42" name = "__codelineno-33-42" href = "#__codelineno-33-42" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-33-41" name = "__codelineno-33-41" href = "#__codelineno-33-41" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-33-42" name = "__codelineno-33-42" href = "#__codelineno-33-42" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-33-43" name = "__codelineno-33-43" href = "#__codelineno-33-43" > < / a > < span class = "w" > < / span > < span class = "kd" > let< / span > < span class = "w" > < / span > < span class = "n" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > que_size< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > que_capacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-33-44" name = "__codelineno-33-44" href = "#__codelineno-33-44" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-33-45" name = "__codelineno-33-45" href = "#__codelineno-33-45" > < / a > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > nums< / span > < span class = "p" > [< / span > < span class = "n" > rear< / span > < span class = "w" > < / span > < span class = "k" > as< / span > < span class = "w" > < / span > < span class = "kt" > usize< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -5454,7 +5454,7 @@
< a id = "__codelineno-33-49" name = "__codelineno-33-49" href = "#__codelineno-33-49" > < / a > < span class = "w" > < / span > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-33-50" name = "__codelineno-33-50" href = "#__codelineno-33-50" > < / a > < span class = "w" > < / span > < span class = "k" > fn< / span > < span class = "nf" > pop< / span > < span class = "p" > (< / span > < span class = "o" > & < / span > < span class = "k" > mut< / span > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > )< / span > < span class = "w" > < / span > -> < span class = "kt" > i32< / span > < span class = "p" > {< / span >
< a id = "__codelineno-33-51" name = "__codelineno-33-51" href = "#__codelineno-33-51" > < / a > < span class = "w" > < / span > < span class = "kd" > let< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > peek< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-33-52" name = "__codelineno-33-52" href = "#__codelineno-33-52" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-33-52" name = "__codelineno-33-52" href = "#__codelineno-33-52" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-33-53" name = "__codelineno-33-53" href = "#__codelineno-33-53" > < / a > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > que_capacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-33-54" name = "__codelineno-33-54" href = "#__codelineno-33-54" > < / a > < span class = "w" > < / span > < span class = "bp" > self< / span > < span class = "p" > .< / span > < span class = "n" > que_size< / span > < span class = "w" > < / span > < span class = "o" > -=< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-33-55" name = "__codelineno-33-55" href = "#__codelineno-33-55" > < / a > < span class = "w" > < / span > < span class = "n" > num< / span >
@@ -5535,7 +5535,7 @@
< a id = "__codelineno-34-50" name = "__codelineno-34-50" href = "#__codelineno-34-50" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-34-51" name = "__codelineno-34-51" href = "#__codelineno-34-51" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-34-52" name = "__codelineno-34-52" href = "#__codelineno-34-52" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-34-53" name = "__codelineno-34-53" href = "#__codelineno-34-53" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-34-53" name = "__codelineno-34-53" href = "#__codelineno-34-53" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-34-54" name = "__codelineno-34-54" href = "#__codelineno-34-54" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > queue< / span > < span class = "o" > -> < / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "n" > queue< / span > < span class = "o" > -> < / span > < span class = "n" > queSize< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > queue< / span > < span class = "o" > -> < / span > < span class = "n" > queCapacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-34-55" name = "__codelineno-34-55" href = "#__codelineno-34-55" > < / a > < span class = "w" > < / span > < span class = "c1" > // 将 num 添加至队尾< / span >
< a id = "__codelineno-34-56" name = "__codelineno-34-56" href = "#__codelineno-34-56" > < / a > < span class = "w" > < / span > < span class = "n" > queue< / span > < span class = "o" > -> < / span > < span class = "n" > nums< / span > < span class = "p" > [< / span > < span class = "n" > rear< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -5545,7 +5545,7 @@
< a id = "__codelineno-34-60" name = "__codelineno-34-60" href = "#__codelineno-34-60" > < / a > < span class = "cm" > /* 出队 */< / span >
< a id = "__codelineno-34-61" name = "__codelineno-34-61" href = "#__codelineno-34-61" > < / a > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "nf" > pop< / span > < span class = "p" > (< / span > < span class = "n" > ArrayQueue< / span > < span class = "w" > < / span > < span class = "o" > *< / span > < span class = "n" > queue< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-34-62" name = "__codelineno-34-62" href = "#__codelineno-34-62" > < / a > < span class = "w" > < / span > < span class = "kt" > int< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > peek< / span > < span class = "p" > (< / span > < span class = "n" > queue< / span > < span class = "p" > );< / span >
< a id = "__codelineno-34-63" name = "__codelineno-34-63" href = "#__codelineno-34-63" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-34-63" name = "__codelineno-34-63" href = "#__codelineno-34-63" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-34-64" name = "__codelineno-34-64" href = "#__codelineno-34-64" > < / a > < span class = "w" > < / span > < span class = "n" > queue< / span > < span class = "o" > -> < / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > queue< / span > < span class = "o" > -> < / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > queue< / span > < span class = "o" > -> < / span > < span class = "n" > queCapacity< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-34-65" name = "__codelineno-34-65" href = "#__codelineno-34-65" > < / a > < span class = "w" > < / span > < span class = "n" > queue< / span > < span class = "o" > -> < / span > < span class = "n" > queSize< / span > < span class = "o" > --< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-34-66" name = "__codelineno-34-66" href = "#__codelineno-34-66" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
@@ -5603,10 +5603,10 @@
< a id = "__codelineno-35-48" name = "__codelineno-35-48" href = "#__codelineno-35-48" > < / a > < span class = "w" > < / span > < span class = "n" > std< / span > < span class = "p" > .< / span > < span class = "n" > debug< / span > < span class = "p" > .< / span > < span class = "n" > print< / span > < span class = "p" > (< / span > < span class = "s" > " 队列已满< / span > < span class = "se" > \n< / span > < span class = "s" > " < / span > < span class = "p" > ,< / span > < span class = "w" > < / span > < span class = "p" > .{});< / span >
< a id = "__codelineno-35-49" name = "__codelineno-35-49" href = "#__codelineno-35-49" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-35-50" name = "__codelineno-35-50" href = "#__codelineno-35-50" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span >
< a id = "__codelineno-35-51" name = "__codelineno-35-51" href = "#__codelineno-35-51" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-35-52" name = "__codelineno-35-52" href = "#__codelineno-35-52" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作, 实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-35-51" name = "__codelineno-35-51" href = "#__codelineno-35-51" > < / a > < span class = "w" > < / span > < span class = "c1" > // 计算队 尾指针,指向队尾索引 + 1< / span >
< a id = "__codelineno-35-52" name = "__codelineno-35-52" href = "#__codelineno-35-52" > < / a > < span class = "w" > < / span > < span class = "c1" > // 通过取余操作实现 rear 越过数组尾部后回到头部< / span >
< a id = "__codelineno-35-53" name = "__codelineno-35-53" href = "#__codelineno-35-53" > < / a > < span class = "w" > < / span > < span class = "kr" > var< / span > < span class = "w" > < / span > < span class = "n" > rear< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > queSize< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > capacity< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-35-54" name = "__codelineno-35-54" href = "#__codelineno-35-54" > < / a > < span class = "w" > < / span > < span class = "c1" > // 尾节点后添加 num< / span >
< a id = "__codelineno-35-54" name = "__codelineno-35-54" href = "#__codelineno-35-54" > < / a > < span class = "w" > < / span > < span class = "c1" > // 在 尾节点后添加 num< / span >
< a id = "__codelineno-35-55" name = "__codelineno-35-55" href = "#__codelineno-35-55" > < / a > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > nums< / span > < span class = "p" > [< / span > < span class = "n" > rear< / span > < span class = "p" > ]< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-35-56" name = "__codelineno-35-56" href = "#__codelineno-35-56" > < / a > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > queSize< / span > < span class = "w" > < / span > < span class = "o" > +=< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-35-57" name = "__codelineno-35-57" href = "#__codelineno-35-57" > < / a > < span class = "w" > < / span > < span class = "p" > }< / span > < span class = "w" > < / span >
@@ -5614,7 +5614,7 @@
< a id = "__codelineno-35-59" name = "__codelineno-35-59" href = "#__codelineno-35-59" > < / a > < span class = "w" > < / span > < span class = "c1" > // 出队< / span >
< a id = "__codelineno-35-60" name = "__codelineno-35-60" href = "#__codelineno-35-60" > < / a > < span class = "w" > < / span > < span class = "kr" > pub< / span > < span class = "w" > < / span > < span class = "k" > fn< / span > < span class = "w" > < / span > < span class = "n" > pop< / span > < span class = "p" > (< / span > < span class = "n" > self< / span > < span class = "o" > :< / span > < span class = "w" > < / span > < span class = "o" > *< / span > < span class = "n" > Self< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "n" > T< / span > < span class = "w" > < / span > < span class = "p" > {< / span >
< a id = "__codelineno-35-61" name = "__codelineno-35-61" href = "#__codelineno-35-61" > < / a > < span class = "w" > < / span > < span class = "kr" > var< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > peek< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-35-62" name = "__codelineno-35-62" href = "#__codelineno-35-62" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部则返回到数组头部< / span >
< a id = "__codelineno-35-62" name = "__codelineno-35-62" href = "#__codelineno-35-62" > < / a > < span class = "w" > < / span > < span class = "c1" > // 队首指针向后移动一位,若越过尾部, 则返回到数组头部< / span >
< a id = "__codelineno-35-63" name = "__codelineno-35-63" href = "#__codelineno-35-63" > < / a > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > =< / span > < span class = "w" > < / span > < span class = "p" > (< / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > front< / span > < span class = "w" > < / span > < span class = "o" > +< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > )< / span > < span class = "w" > < / span > < span class = "o" > %< / span > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > capacity< / span > < span class = "p" > ();< / span >
< a id = "__codelineno-35-64" name = "__codelineno-35-64" href = "#__codelineno-35-64" > < / a > < span class = "w" > < / span > < span class = "n" > self< / span > < span class = "p" > .< / span > < span class = "n" > queSize< / span > < span class = "w" > < / span > < span class = "o" > -=< / span > < span class = "w" > < / span > < span class = "mi" > 1< / span > < span class = "p" > ;< / span >
< a id = "__codelineno-35-65" name = "__codelineno-35-65" href = "#__codelineno-35-65" > < / a > < span class = "w" > < / span > < span class = "k" > return< / span > < span class = "w" > < / span > < span class = "n" > num< / span > < span class = "p" > ;< / span >