【发布时间】:2013-07-20 10:38:29
【问题描述】:
我有一张这样的桌子
----------------------------------
CUSTOMER_ID | REF_CUSTOMER_ID |
----------------------------------
1 | NULL |
2 | 1 |
3 | 2 |
4 | 2 |
5 | 3 |
6 | 3 |
7 | 4 |
8 | 4 |
9 | 1 |
----------------------------------
从该表可知 2 是 1 的孩子,3,4 是 2 的孩子,依此类推。 这使树看起来像这样
1
|
------------------
| |
2 9
| |
-----------
| |
3 4
| |
----- -----
| | | |
5 6 7 8
好的,在每个父母有 2 个孩子和 4 个叶子之后,在这种情况下,2 个有 3 和 4 的孩子和 5、6、7、8 的叶子,树将不得不倒塌。这意味着它只会在树中留下 1。但是由于 2 是 1 的子节点,而 3,4 是 1 的叶子,并且 1 还没有完成它的循环,所以 1 还不能崩溃。
问题
我如何仍然将 2 的树折叠为根,但保持 1 的树及其子节点和叶子?我该如何处理?我必须创建另一个表吗?还是只使用现有的表?
【问题讨论】:
-
您能解释一下“折叠”是什么意思吗?我不明白你的问题......也许你可以发布一张你希望树最终看起来像什么的图表。
-
另外,3 和 4 不是叶子。叶节点是没有子节点的节点,但在本例中,3 和 4 都有两个子节点。
-
折叠 - 意思是我想删除树及其所有节点。但在这种情况下,如果 2 是根,则整个树的根必须折叠为 2。但是1作为根还没有完成一个循环,所以1不能崩溃。我知道上图中的 3 和 4 不是叶子。但是如果 1 是根并且您忽略 5678,则 3 和 4 是 1 的叶子。循环仅在树的 2 级完成。这意味着您必须分别查看 2 和 1。但在 BIG TREE 结构中,两者是相互关联的。
标签: php tree binary-tree collapse