2011-12-06 38 views
0

我花了半天的时间查看二叉树和二叉搜索树,并且根本无法让我的头在他们周围,或者它如何适用于我在这里的内容。我所看过的所有阅读内容在概念上都相当混乱,而且没有给出真实世界的例子。使用parent_id关系从现有位置表创建二叉树

我继承了一个具有地理位置表的MySQL和PHP系统。这本质上是分层的,所有记录都通过parent_id字段链接到它们的直接父级。

例如新西兰 - >北岛 - >奥克兰 - >奥克兰市

该表格还有两个字段,分别称为“lft”和“rgt”,已填充。我的工作是改变这个表格的更多(和改变)的地理位置,因此,更新这些lft和rgt值。

据我所知,如果我看一下子节点的lft和rgt值并编写一个查询,效果如下:SELECT * FROM table WHERE lft < = child_left AND rgt> child_rgt,我会得到一个祖先链。

但我不明白这个逻辑。我不遵循将这些lft和rgt值分配给记录的理论。他们当然似乎没有任何相关的记录本身的唯一ID。

有人能指点我一个体面的资源与例子吗?或者有一个简单的解释BST的方法?

回答