php二叉树 排列,PHP 如何实现用户二叉树排序需求

用户二叉树排序需求

用户注册,输入以下注册信息:

- 电子邮箱

- 密码

- 确认密码

- 推荐人ID(此ID可以在数据库中手动增加一个)

每注册进一个新用户,该用户就进入到排序中

排序规则

新增用户必须在推荐人下面

按照从左到右,从上到下的方式遍历,找到空位插入数据

下列是图解:

假设A是根节点(A就是手动添加的第一位用户)

有一个新用户注册进来(假设新用户为B),推荐人ID填写的是A的ID,则排序如下:

A

/

B

又有一位C用户注册,推荐人ID填写的是B的ID,则:

A

/

B

/

C

有一位D用户注册,推荐人ID填写的是A的ID,则:

A

/ \

B D

/

C

有一位E用户注册,推荐人ID填写的是B的ID,则

A

/ \

B D

/ \

C E

有一位F用户注册,推荐人ID填写的是A的ID,则

A

/ \

B D

/ \ /

C E F

有一位G用户注册,推荐人ID填写的是E的ID,则

A

/ \

B D

/ \ /

C E F

/

G

有一位H用户注册,推荐人ID填写的是B的ID,则

H的推荐人是B,所以,H必定是在B的下面,然后按照从左到右的方式查找,C和E占了上面的两个位置,所以到下一排查找,找到空位,则插入H,以下都是这种规律

A

/ \

B D

/ \ /

C E F

/ /

H G

有一位I用户,和J用户又陆续注册进来,填写的都是C的ID,则

A

/ \

B D

/ \ /

C E F

/ \ /

H I G

/

J

有一位K用户,和L用户又陆续注册进来,填写的都是A的ID,则

A

/ \

B D

/ \ / \

C E F K

/ \ / \

H I G L

/

J

有一位M用户,N用户和O用户 又注册进来,填写的分别是B用户,C用户,和L用户的ID,则:

A

/ \

B D

/ \ / \

C E F K

/ \ / \

H I G L

/ \

J M

A

/ \

B D

/ \ / \

C E F K

/ \ / \

H I G L

/ \ /

J M N

A

/ \

B D

/ \ / \

C E F K

/ \ / \

H I G L

/ \ / /

J M N O

有一位P用户、Q用户、R用户、S用户又注册进来,填写的分别是A用户,B用户,E用户,A用户的ID。则:

A

/ \

B D

/ \ / \

C E F K

/ \ / \ /

H I G L P

/ \ / /

J M N O

A

/ \

B D

/ \ / \

C E F K

/ \ / \ /

H I G L P

/ \ / \ /

J M N Q O

A

/ \

B D

/ \ / \

C E F K

/ \ / \ /

H I G L P

/ \ / \ / /

J M N Q R O

A

/ \

B D

/ \ / \

C E F K

/ \ / \ / \

H I G L P S

/ \ / \ / /

J M N Q R O

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值