同济c c 软件基础 数据结构3费下载.pptVIP

  • 1
  • 0
  • 约2.86千字
  • 约 12页
  • 2018-12-06 发布于湖北
  • 举报
同济c c 软件基础 数据结构3费下载

* 二. 循环链表 将单链表最后一个结点的link字段指向第一个结点就构成了循环链表(circular list),一般的单链表只能访问某结点后面的结点,而循环链表从任一结点出发都可以访问所有的结点.如下所示: 对于环链表: 最后一个结点的link值不再是NULL,而是表头指针first. 可通过检查 current?link == first 来判断当前指针current是否指向最后结点; first a1 ai-1 an ai 循环链表的应用举例-----约瑟夫问题 问题描述:旅行社要从n个旅客中选出一名旅客,为其提供免费环球旅行服务.旅行社安排这些旅客围成一个圆圈,从小于n的数中随意抽出一个数m,作为报数值。游戏进行时,从第一个人开始按顺时针方向自1开始顺序报数,报到m时停止报数,报m的人被淘汰出列,然后从他顺时针方向上的下一个人开始重新报数,如此下去,直到圆圈中只剩下一个人,这个最后的幸运者就是游戏的胜利者,将得到免费旅行的奖励。例如,若n=8,m=3,则出列顺序将为3,6,1,5,2,8,4,最初编号为7的旅客将赢得环球旅游的机会。 例如 n =8 m = 3 程序处理步骤: 1、建立环链。 通过void add(int i)函数将值为i的数据不断加到环链的 尾部. 2、选择获胜者. 通过void josph(int n, int

文档评论(0)

1亿VIP精品文档

相关文档