2011-12-06 45 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的方法?

回答