问题标题:
程序算法问题:不是代码,(是数据结构类的算法描述而非代码)动物园里的n只猴子编号为1,2,…,n,依次排成一队等待饲养员按规则分桃.动物园的分桃规则是每只猴子可分得m个桃子,但必须排
问题描述:
程序算法问题:不是代码,(是数据结构类的算法描述而非代码)
动物园里的n只猴子编号为1,2,…,n,依次排成一队等待饲养员按规则分桃.动物园的分桃规则是每只猴子可分得m个桃子,但必须排队领取.饲养员循环地每次取出1个,2个,…,k个桃放入筐中,由排在队首的猴子领取.取到筐中的桃子数为k后,又重新从1开始.当筐中桃子数加上队首猴子已取得的桃子数不超过m时,队首的猴子可以全部取出筐中桃子.取得桃子总数不足m个的猴子,继续到队尾排队等候.当筐中桃子数加上队首猴子已取得的桃子数超过m时,队首的猴子只能取满m个,然后离开队列,筐中剩余的桃子由下一只猴子取用.上述分桃过程一直进行到每只猴子都分到m个桃子.设计一个算法求出猴子出列顺序(完成整个分配过程后的猴子的顺序).
x052)基本要求
x05(1)利用单循环链表作为存储结构模拟此过程;
x05(2)键盘输入猴子数目、桃子数目;
(3)按照出列顺序输出猴子编号.
设计一个算法(是数据结构类的算法描述而非代码)
拱长青回答:
既然都提示用链表了,算法也就出来了.先定义链表,包括猴子当前有的桃子数x,猴子编号y,以及指向下一个的指针.人每次取出的桃子数为j.循环开始,{上来先判断,x+j>m?(判断1)是,链表...
点击显示
其它推荐