字段:MO S1 S2 S3 S4 S5 S6
数值:1 A B C D E F
2 G H C I J K
以上是一个表结构,现提供A、K,这样查找到A和K所在行的相同点C。
次程序类似公交车查询转一次车
有哪为高手能帮个忙给个算法或例子的,信箱:[email protected]
数值:1 A B C D E F
2 G H C I J K
以上是一个表结构,现提供A、K,这样查找到A和K所在行的相同点C。
次程序类似公交车查询转一次车
有哪为高手能帮个忙给个算法或例子的,信箱:[email protected]
2 G H C I J K1.查找出A所在的线路1
2.查找出K所在的线路2
3.把线路1与线路2合并(可以用二路归并)成线路0,此时线路0中是已经排序的
A B C C D E F G H I J K
4.在线路0中查找相邻的两个节点相同的C,搞定
能否给我个程序[email protected]
谢谢
var
L0, L1, L2, L3: TStringList;
I: Integer;
LastS: string;
begin
L0 := TStringList.Create;//表示一、二路的合并结果
L1 := TStringList.Create;//表示第一路
L2 := TStringList.Create;//表示第二路
L3 := TStringList.Create;//表示查找出的结果
try
L1.Add('A');
L1.Add('B');
L1.Add('C');
L1.Add('D');
L1.Add('E');
L1.Add('F');
L1.Sort;
L2.Add('G');
L2.Add('H');
L2.Add('C');
L2.Add('I');
L2.Add('E');
L2.Add('K');
L2.Sort; for I := 0 to L1.Count -1 do
begin
L0.Add(L1[I]);
end;
for I := 0 to L2.Count -1 do
begin
L0.Add(L2[I]);
end;
L0.Sort; //把合并后的排序
LastS := L0[0];
for I := 1 to L0.Count -1 do //查找两个连续相同的元素
begin
if L0[I] = LastS then L3.Add(LastS);
LastS := L0[I];
end;
ShowMessage('结果是:' + L3.CommaText);
finally
L0.Free;
L1.Free;
L2.Free;
L3.Free;
end;
end;