回 帖 发 新 帖 刷新版面

主题:求各位帮个忙解决4个问题

1.用pascal实现(顺序结构)josephus问题设有n个人围坐在一个圆桌周围,现从第s个开始报数,数到第m的人出列,然后从出列的下一个重新开始报数,数到第m个的人出列……,如此重复,直到所有的人全部出列为止。Josephus问题是:对于任意给定的n,s和m,求出按出列次序得到的n个人员的顺序表

2.用单链表实现(A-B)∪(B-A),A,B元素从键盘输入

3.实现replace操作(串)

4.用后序的顺序创建一个二叉树,并对此二叉树进行遍历(递归or非递归均可)



多谢大家帮忙啊

回复列表 (共1个回复)

沙发

地1题:这是我自己做的,有可能麻烦了一些,仅供参考!
const Max=???;
var
  m:array [1..Max] of longint;
  n,s,m,i,k:longint;
begin
  readln(n,s,m);
  for i:=1 to n do m[i]:=i;
  k:=s+m;
  if k>n then k:=k-n;
  write(m[k]);
  for i:=k to n do m[i]:=m[i+1];
  n:=n-1;
  repeat
    k:=k+m;
    if k>n then k:=k-n;
    write(m[k]);
    for i:=k to n do m[i]:=m[i+1];
    n:=n-1;
  until n=0;
END.

我来回复

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