使用php mysql在二叉树中查找插入位置和子节点数
技术问答
524 人阅读
|
0 人回复
|
2023-09-12
|
脸是我的表数据: m3 }: M4 Z. D% Z6 t9 ^/ u
------------- ----------- ---------------- | customer_id | parent_id | node_direction | ------------- ----------- ---------------- | | | T || | | L || | | R || | | L || 5 5 5 5 55 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5555 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 | | R || | | L | ------------- ----------- ---------------- Which represents the following tree | --------- | | 3 | ------- | | 5 | ----- | 我需要通过父 ID 找到插入位置
8 c6 _3 ?; t+ b% m* y例如:
6 v( D5 h4 _' q% o, E k/ \0 Q6 ]1) 如果 parent_id 为 1,插入位置为 root-3 position-L% Q* |. _, f Z y$ j) b `
2) 如果 parent_id 为 2,插入位置为 root-4 position-R+ A4 n% L( W9 @, V
3) 如果 parent_id 为 3,插入位置为 root-3 位置-L0 d# m& m: Z7 k
问题是它需要遵循二进制结构
. p2 z+ M, Y7 O我还需要根据父节点计算子节点数,例如:
& u# K q* D* u: q. q6 m1 - 5 2 - 3 3 - 0 4 - 1 5 - 0我需要在 php 和 mysql 完成这个。: D9 X8 m2 T' W* x$ b' b! I
任何人都能向我建议实现这个目标最简单的方法吗?5 H2 c0 e5 Z( }. [) s9 ^0 U* c
( S ?+ E; f5 h+ G8 r- W! Y* x. P o
解决方案: |
|
|
|
|
|