回 帖 发 新 帖 刷新版面

主题:[讨论]数据结构课题设计"猴子选大王问题"

问题描述]  n只猴子要选大王,选举方法是:所有猴子按1,2,…,n编号围坐一圈,从第1号开始按1,2,…,m报数,凡报到m号的退出圈外,如此循环报数,直到圈内剩下一只猴子时,这只猴子就是大王。
[基本要求] 分别选择顺序表和单向循环链表作为存储结构模拟整个过程,并依次输出出列的各猴子的编号和最终所选出猴王的编

回复列表 (共3个回复)

沙发

如果m=3 那几号是大王?

板凳

#include <iostream.h>
 struct List
{
    int date;
    struct List *next;
};
void InitList(struct List **head)
{
    *head=NULL;
}
void fndList(struct List **head,int max)
{
    int i;
    *head=new List;
    struct List *point1,*point2;
    point1=*head;
    point1->date=1;
    point1->next=NULL;
    for(i=1;i<max;i++)
    {
        point2=new List;
        point1->next=point2;
        point1=point1->next;
        point1->date=i+1;
    }
    point1->next=*head;
    
}
void TraverseList(struct List *head,int Max)
{
    int i;
    for(i=1;i<Max;i++)
    {
        cout<<head->date<<" ";
        head=head->next;
    }
    cout<<head->date<<endl;
}
void OutList(struct List **head,int a,int b)
{
    struct List *point,*flag;
    int i;
    point=*head;
    for(i=1;i<b;i++)
        point=point->next;
    while(point!=point->next)
    {
        for(i=1;i<a;i++)
        point=point->next;
        flag=point->next;
        cout<<endl;
        cout<<flag->date<<"号猴子被淘汰"<<endl;
        
        point->next=flag->next;
        //delete point;
        flag=flag->next;
    }
    cout<<endl;
    cout<<endl;
    cout<<endl;
    cout<<"恭喜"<<flag->date<<"号猴子是大王"<<endl;
    delete flag;

}
void main()
{
    int m,n,p;
    struct List *top;
    cout<<"请输入猴子的数量m:"<<endl;
    cin>>m;
    cout<<"你想从第几只猴子开始报数"<<endl;
    cin>>p;
    cout<<"你想报数为第几的猴子出列"<<endl;
    cin>>n;
    InitList(&top);
    fndList(&top,m);
    TraverseList(top,m);
    OutList(&top,n,p);
}

这是一个单循环链表的程序。



3 楼

浙江省自学考试办公室数据结构辅导网站全部flash(完全Action script实现)动画模拟课件

下载地址:[url=http://www.shujujiegou.cn/uploadfile/200902/17/922266813.rar]http://www.shujujiegou.cn/[/url]

http://www.shujujiegou.cn/uploadfile/200902/17/922266813.rar

2002年我和同学一起做的[浙江省自学考试办公室数据结构网站]的课件,全部用as实现的数据结构算法的动画模拟.

现在我们做的网站访问量一直比较不错.得到了大家的好评.同时很多大学的老师也在用这些课件教学生,经常有很多大学里计算机系的学生来问我这方面的问题.

我的qq还是 21156410 .如果有问题可以联系我.同时我这里把这些课件整理出来供大家一次性下载.谢谢大家支持.(不含论文).

我来回复

您尚未登录,请登录后再回复。点此登录或注册