我正在开发一个网站,用于在公司中发布部分,我坚持以下需求:
该公司有几个分支机构,每个分支机构都有不同的邮寄路线。
例如,我想的是:
单元1只发送到单元2,它只发送到单元3,...
所以,如果我想将单元1中的内容发布到单元6,它必须通过单元2,3,4和5.直到这样我才能使用下面的代码:< / p>
<%
origem = int(request.querystring("origem"))
destino = int(request.querystring("destino"))
codcorrespondencia = int(request.querystring("codcorrespondencia"))
set rs = server.CreateObject("ADODB.Recordset")
set rs2 = server.CreateObject("ADODB.Recordset")
base = destino
caminho = base
do while not base = origem
rs.open "select * from ESCALAS where codunidade_post = " & base, conexao
if not rs.fields("codunidade") = origem then
do while not rs.eof
rs2.open "select * from ESCALAS where codunidade_post = " & rs.fields("codunidade"), conexao
if not rs2.eof then
escalacao = int(rs.fields("codunidade")) & " - " & base & "; " & escalacao 'novas linhas
base = int(rs.fields("codunidade"))
end if
rs2.close
rs.movenext
loop
else
escalacao = rs.fields("codunidade") & " - " & base & "; " & escalacao 'novas linhas
base = origem
end if
rs.close
caminho = base & "," & caminho
loop
response.Write(escalacao)
%>
但是,如果发生以下情况:
单元1至2,2至3,4至5,4至6和5至6
代码选择从4到5和5到6发送,而不是从4到6直接发送。
我的代码如何变得聪明并选择最短的方式?
为了测试,我把var ESCALACAO。它向我展示了代码选择的方式。
答案 0 :(得分:0)
看起来您需要实施最短路径算法才能找到帖子的最佳路线,因为您有多条路线从4到6(直接4-> 6和间接4-> 5-&gt; ; 6)
请参阅维基百科上的Shortest Path Problem。