Part 1:循环队列
我们来看下上次我们写下的Queue
:
1 | struct Queue{ |
现在我们增加一个功能,获取第i个元素。
1 | int getNum(int x){ |
好的,开始在里边填充东西:
1 | int getNum(int x){ |
但显然,如果你的x
比较大的话,你会输出什么?
那就想个办法,我们可以给他来个循环队列,也就是说,如果你的x
太大了,我们就把他重新归到head
,再来确定元素,就像这样:
那就开始吧!
1 | int getNum(int x){ |
但是,如果这个队列是空的话,head-tail
是0的话,会有error
,我们再加一个特判:
1 | int getNum(int x){ |
如果队列为空,返回一个-1
。顺便咱把getHead()
也重写一下:
1 | int getHead(){ |
好的,循环队列就实现啦~