数据结构实验 实验一、约瑟夫环问题 实验目的 1)掌握线性表的存储结构; 2)学会利用线性表解决实际问题。 实验内容 编号为 1,2,n 的 n 个人按顺时针方向围坐一圈,每人持有一个密码(正整数)。一开始任选一个密码 m,从第一个人开始按顺时针方向自 1 开始顺序报数,报到 m 时停止报数。报 m 的人出列,将他的密码作为新的 m 值,从他在顺时针方向上的下一个人开始重新从 1 顺序报数,如此下去,直到所有人全部出列为止。 实验要求 1)建立模型模拟约瑟夫环问题,确定存储结构,用单链表实现; 2)输入 m 的初值,人数 n,输入每个人的密码;出圈的顺序请依次输出。 数据结构分析 由于约瑟夫环问题本身具有循环性质,考虑采用循环链表。链表的每个结点有两个域,分别是序号和其所持有的密码。建立单链表后,根据算法找到相应的结点,对找到的结点进行输出,并把该结点从链表中删除,再释放该结点空间。 实验程序 #include malloc.h / 实验 数据: 总人数