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

淡空」
  • 1
新手上路,请多包涵

用户二叉树排序需求

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

    - 电子邮箱
    - 密码
    - 确认密码
    - 推荐人ID(此ID可以在数据库中手动增加一个) 
  2. 每注册进一个新用户,该用户就进入到排序中
  3. 排序规则

    1. 新增用户必须在推荐人下面
    2. 按照从左到右,从上到下的方式遍历,找到空位插入数据

    4 可以显示给用户看

下列是图解:

假设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
评论
阅读 284
1 个回答

这个信息你是需要以什么样的形式展示勒

撰写回答

登录后参与交流、获取后续更新提醒

宣传栏