数据结构 循环队列选择题
数据结构循环队列选择题1.循环队列初始不是front=rear么?2.(rear+1)%maxsize==front不是等于满了吗?怎么是初始?...
数据结构 循环队列选择题1.循环队列初始不是front=rear么?
2.(rear+1)%maxsize==front 不是等于满了吗?怎么是初始? 展开
2.(rear+1)%maxsize==front 不是等于满了吗?怎么是初始? 展开
1个回答
展开全部
个人认为这题目出的不太好,循环队列具体实现前后指针的处理有多种方式。
如果非要选一个答案,个人倾向于选 B。
如果 rear 指向的是队列中的最后一个元素,那需要用另一个变量表示队列是否空,我猜测题目中隐含了这个意思。
答案 A,入队操作,如果队列空,则直接把元素存在 rear 位置,否则先 rear++,再把元素存在 rear 位置。
答案 B,入队操作,先 rear++,再把元素存在 rear 位置。与答案 A 相比少了 if 判断,更简洁。
答案 C,入队操作,先 front++,再把元素存在 rear 位置,入队进行 front++ 操作违反常规。
答案 D,入队操作,先 front++,rear++,再把元素存在 rear 位置,入队进行 front++ 操作违反常规,且两个++操作不如答案 B 简洁。
如果非要选一个答案,个人倾向于选 B。
如果 rear 指向的是队列中的最后一个元素,那需要用另一个变量表示队列是否空,我猜测题目中隐含了这个意思。
答案 A,入队操作,如果队列空,则直接把元素存在 rear 位置,否则先 rear++,再把元素存在 rear 位置。
答案 B,入队操作,先 rear++,再把元素存在 rear 位置。与答案 A 相比少了 if 判断,更简洁。
答案 C,入队操作,先 front++,再把元素存在 rear 位置,入队进行 front++ 操作违反常规。
答案 D,入队操作,先 front++,rear++,再把元素存在 rear 位置,入队进行 front++ 操作违反常规,且两个++操作不如答案 B 简洁。
追问
谢谢
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询