算法求教
odbd 2004-04-18 11:33:35 我现在有一个数据库 结构很简单 一个father字段 一个son字段 分别放父节点和子节点
比如 father son
1 2
1 3
2 5
2 6
3 4
3 7
4 2
4 3
4 8
5 9
…………
这样
我要做的研究是定点到定点的最短路问题。
现在我想做的是在程序输入起始节点和终止节点后 得到连接的次数
比如输入1,3 则连接次数为1 ; 输入1,7 则连接次数为2;
输入1,4 则连接次数为2 ; 输入1,9 则无连接;
现在我有两个想法:
1、从起始节点开始搜索连接,直到搜索到终止节点为止。即先“select * where father=起始节点”,会有多条记录,然后再从每一条记录的son遍历下去,把son作为father,一直这样遍历下去,直到搜索到的son的值就是终止节点的值,返回这一条链的连接数。
2、从起始节点向后遍厉,方法同1,从终止节点向前遍厉,方法与1反过来,这样从链的两头向中间搜索,当到达某个共有的中间节点是说明连接成功,反之,则说明起始节点与终止节点间无连接。
先请教这两种算法可行否,或者有无更好的算法来实现。