标题:入队出对为什么这样调指针?
只看楼主
suqhang
Rank: 2
等 级:论坛游民
帖 子:16
专家分:20
注 册:2010-7-7
结帖率:0
 问题点数:0 回复次数:4 
入队出对为什么这样调指针?
void SEQUENCE_QUEUE::InQueue(ELEMTYPE *pe)
{
    queue[rear]=*pe;
    rear=(rear+1)%MAXSIZE;                //???
}


void SEQUENCE_QUEUE::OutQueue(ELEMTYPE *pe)
{
    *pe=queue[front];
    front=(front+1)%MAXSIZE;            //???
搜索更多相关主题的帖子: 指针 入队 
2010-10-22 14:52
m21wo
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
威 望:4
帖 子:440
专家分:1905
注 册:2010-9-23
得分:0 
这时循环队列的入队和出队么!

If You Want Something, Go Get It, Period.
2010-10-22 15:44
suqhang
Rank: 2
等 级:论坛游民
帖 子:16
专家分:20
注 册:2010-7-7
得分:0 
回复 2楼 m21wo
是啊
2010-10-22 15:45
wsliuyunming
Rank: 3Rank: 3
等 级:论坛游侠
威 望:3
帖 子:54
专家分:143
注 册:2010-9-26
得分:0 
因为  rear=(rear+1)%MAXSIZE;  MAXSIZE是指队列的最大的容量 %取余运算, rear+1)%MAXSIZE让rear指向队列的下个位子。 同理front 也是如此。因为front总是指在最后一个元素的下一个位子所以front=(front+1)%MAXSIZE中假如MAXSIZE=10,front=3 运算之后front就等于4了指向了第4个位子了。假如maxsize等于4 front就指向了第一个0号位子了。你就把它看成一个有大小的循环就可以了
2010-10-25 15:47
suqhang
Rank: 2
等 级:论坛游民
帖 子:16
专家分:20
注 册:2010-7-7
得分:0 
回复 4楼 wsliuyunming
如果我想做约瑟夫环问题,如何用循环??
2010-10-29 23:32



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-323658-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.642005 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved