[理工] 资结 Circular Array问题

楼主: st945712 (st945712)   2018-10-29 14:58:41
http://i.imgur.com/gxQJCJ4.jpg
洪逸的资结笔记里面,
circular Array法三的部分,
请问用铅笔圈起来的两个if(front==rear)
如果省略的话会有什么错误吗?
这个[法三]的缺点是写 因为多用了这两个if函式,所以测试时间变成[法二]的两倍
但是我想很久都想不到如果省略了这两个if会带来什么样的错误,求各位大大解救QQ
下面附上文中所提到的[法二]
http://i.imgur.com/VCTo7Rw.jpg
楼主: st945712 (st945712)   2018-10-29 17:12:00
谢谢大大,我一开始还在想说是不是考虑同步问题@@
作者: jasoncph (Ben)   2018-10-29 16:24:00
应该是充分用到n格不然只能用n-1格
作者: jojoboy0115 (jojo)   2018-10-29 16:09:00
我懂你的意思了,如果没有这个判断,等于是你每次进来都要把Tag变成True,即使Tag已经是True了,功能虽然没有影响,这样就浪费了时间,一般不会这样写@@而且如果拿掉判断,Tag一开始设定的初衷就违背了。没有满也设成True,让人不清楚Tag的功能,大概是这样。
楼主: st945712 (st945712)   2018-10-29 15:48:00
我说的是把if(rear==front)省略, 后面的tag = true照样留着,就是‘只要做enqueue 就把tag设成True’‘只要做Dequeue 就把tag设成false’
作者: jojoboy0115 (jojo)   2018-10-29 15:27:00
https://i.imgur.com/2SeS9fX.jpg要是省略,就没办法判断Queue是不是真的满了,还是你有其他的问题想问?

Links booklink

Contact Us: admin [ a t ] ucptt.com