一道数据结构 循环队列的题目,求助!
题目是:已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一位置,则在队列不满的情况下,队列的长度是:_____PS:详细说...
题目是:
已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一位置,则在队列不满的情况下,队列的长度是:_____
PS:详细说下思路,一道填空题,答案我有。
我答的是rear-front,但不对,不知道哪错了,还有哪些情况请说明
知道的朋友说下,满意一定追加! 展开
已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一位置,则在队列不满的情况下,队列的长度是:_____
PS:详细说下思路,一道填空题,答案我有。
我答的是rear-front,但不对,不知道哪错了,还有哪些情况请说明
知道的朋友说下,满意一定追加! 展开
展开全部
队列长度应该为:(rear - front + m)% m
循环队列主要是两种情况:
1.front在上面,比如一个长度为5的循环队列:-代表空,x代表有数据
|-------5|
|-------4| <-rear
|xxxxxx3|
|xxxxxx2|<-front
|-------1|
那么队列的长度是rear-front是没有问题的
2.由于是循环队列,入队的时候从尾巴进,出来的时候从front出来,如果情况1再进来2个元素就变为
|xxxxx5|
|xxxxx4|
|xxxxx3|
|xxxxx2|<-front
|-------|<-rear
显然,这种情况下用rear-front得出来的结果就不正确了,所以就出来上面的公式了
其实我觉得取绝对值也可以吧
循环队列主要是两种情况:
1.front在上面,比如一个长度为5的循环队列:-代表空,x代表有数据
|-------5|
|-------4| <-rear
|xxxxxx3|
|xxxxxx2|<-front
|-------1|
那么队列的长度是rear-front是没有问题的
2.由于是循环队列,入队的时候从尾巴进,出来的时候从front出来,如果情况1再进来2个元素就变为
|xxxxx5|
|xxxxx4|
|xxxxx3|
|xxxxx2|<-front
|-------|<-rear
显然,这种情况下用rear-front得出来的结果就不正确了,所以就出来上面的公式了
其实我觉得取绝对值也可以吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询