在数据结构入队与出队的算法中,为什么Q->rear=(Q->rear+1)%MAXSIZE与Q->data[Q->rear]=x可以互换
答案:2 悬赏:0 手机版
解决时间 2021-04-03 11:20
- 提问者网友:眉目添风霜
- 2021-04-03 07:29
在数据结构入队与出队的算法中,为什么Q->rear=(Q->rear+1)%MAXSIZE与Q->data[Q->rear]=x可以互换
最佳答案
- 五星知识达人网友:像个废品
- 2021-04-03 08:24
完全不可以啊追问可是我编的那个程序中,把那两句互换,程序结果一样呀追答呃,我想了想,确实是可以,如果初始化队列时头指针和尾指针都指向第1个元素,即rear=head=0,那么可以选择换成 Q->data[Q->rear]=x; Q->rear=(Q->rear+1)%MAXSIZE; 如果头指针指向第一个元素,而尾指针指向第0个元素,即head=0,rear=-1,那么最好用Q->rear=(Q->rear+1)%MAXSIZE; Q->data[Q->rear]=x;不然可用元素会少一个追问可是书上不是说了,Q->front所指的那个空间不放值吗?如果是书上说的那样的话,rear=head=0时,Q->rear]=x; Q->rear=(Q->rear+1)%MAXSIZE就不对了追答只要能实现队列进出等函数,具体实现方式并不固定。Q->front所指的那个空间放不放值并没有什么影响。追问不是呀,刚开始rear=front=0,如果先Q->rear=x,x的值不就放在front所指的空间了吗,这就和'Q->front所指的那个空间不放值'矛盾了呀
全部回答
- 1楼网友:思契十里
- 2021-04-03 08:46
后者是让队列尾指针后移一位,前者是判断队列是否已满。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯