Java或php树结构问题

时间:2010-03-09 01:49:22

标签: java php mysql database data-structures

我的所有数据都在我的数据库中。它有以下4列

id  source_clust    target_clust    result_clust

1    7       72      649
2    9       572     650
3    649     454     651
4    32      650     435

此数据类似于树结构。 source_clust和target_clust生成target_clust。 target_clust可以是source_clust或target_clust来创建新的target_clust。在那儿 我可以用来为我的数据生成树结构的任何php函数或类????

我看到这个MySql网站他们正在做的正是我需要但我找不到如何 在我的数据中实现该查询。

谢谢!

被修改


java中有没有办法做到这一点?如果我们在数组中有相同的数据??

2 个答案:

答案 0 :(得分:2)

您可以从phpclasses.org下载PHP树(甚至是您的案例中的binary tree)类,然后您可以使用填充树的脚本和数据库中的数据。由于你有更多的根,你将拥有树的更多独立部分。在你写的案例中,你将有两个根:651和435.

[...]
$tree = new Tree();
$strsql = "SELECT source_clust, target_clust, result_clust FROM mytable";
$ressql = @mysql_query($strsql);
while(list($v1, $v2, $v3)=@mysql_fetch_array($ressql))
{
    if (!$tree->hasNode($v1))
        $tree->newNode($v1);        
    if (!$tree->hasNode($v2))
        $tree->newNode($v2);        
    if (!$tree->hasNode($v3))
        $tree->newNode($v3);

    $tree->Node($v1)->parent = $tree->Node($v3);
    $tree->Node($v2)->parent = $tree->Node($v3);
}
@mysql_free_result($ressql);

答案 1 :(得分:0)

这是我用来构建二叉树数据结构及其相应操作的完整代码: