i  a  b
1  4  2
2  2  3
3  3  5

有这样一对数组path,i可当作编号,每一横行可以当作一条记录path[i],若path[x].b=path[y].a那么可生成一个新的项path[f].a=path[x].a,path[f].b=path[y].b,即类似传递关系,x从1循环至3,y从1循环至3,结果:x=1,y=2,生成path[4]=4 3;x=2,y=3,生成path[5]=2 5问题是新生成的项要再次加入整个数组进行全部遍历,然后再生成新的项再添加到数组里,求算法,谢谢我写的有问题的算法
issadd:=false;   //issadd判断是否把当前值保存进数组
  x:=1;
if isadd=true then y:=pathnum;
repeat
 {y:=1
  repeat 
   {
    if path[x].b=path[y].a then
    {
      isadd:=true;
      如果不满足条件则isadd:=false;
      如果isadd=true then pathnum:=pathnum+1;//如果插入的话就把数组有效单元个数+1,否则就不加,下一次循环到决定插入时自动冲掉原来的值
      }
    y:=y+1;
    }
  until y>pathnum
  x:=x+1;
}
until x>pathnum  
问题是当插入了一个path[m]之后,x继续递增,这是就漏掉了n小于x的path[n].b和path[m].a进行比较,请问该如何解决?谢谢,最好写出算法