当前位置: 首页 > news >正文

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

相关文章:

  • jq设置checked是否选中_jquery判断checkbox是否选中及改变checkbox状态
  • vue 创建图片坐标点_vue项目中使用高德地图(根据坐标定位点)
  • activiti表字段_activiti数据库表结构剖析(五)
  • 跑带宽度多少合适_有多少人知道跑步机跑带宽度和长度多少合适?
  • mobiledevice什么意思_mobile device
  • python迭代对象是什么意思_python之中的迭代与迭代对象是什么?
  • 旧物手工机器人制作图片_科技小发明手工,DIY电池机器人制作图解教程
  • 概率密度变换公式 雅可比矩阵_【转载】雅克比矩阵与雅克比行列式
  • win10蓝牙已配对连接不上_win10系统蓝牙已配对但未连接的解决方法
  • lua协程 unity_Unity ToLua LuaFramework_UGUI学习笔记
  • 创建图表_如何在Confluence中创建Jira报表和图表
  • docker内存阀值_有关Docker的八个令人难以置信的事实
  • bootstrap modal填充数据_layui后台管理—table 数据表格详细讲解
  • go 取出json对象的某个值_用Go语言之前,先看看它的利与弊吧
  • 学python的软件开发人员_学python用什么开发软件?
  • canvas 五子棋游戏
  • co模块的前端实现
  • ES6之路之模块详解
  • Java教程_软件开发基础
  • Linux中的硬链接与软链接
  • Redux系列x:源码分析
  • Spring核心 Bean的高级装配
  • 浮现式设计
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 看域名解析域名安全对SEO的影响
  • 坑!为什么View.startAnimation不起作用?
  • 扑朔迷离的属性和特性【彻底弄清】
  • 浅谈web中前端模板引擎的使用
  • 少走弯路,给Java 1~5 年程序员的建议
  • 体验javascript之美-第五课 匿名函数自执行和闭包是一回事儿吗?
  • 网页视频流m3u8/ts视频下载
  • 译自由幺半群
  • Linux权限管理(week1_day5)--技术流ken
  • ​插件化DPI在商用WIFI中的价值
  • (145)光线追踪距离场柔和阴影
  • (3)(3.5) 遥测无线电区域条例
  • (6)设计一个TimeMap
  • (八)Flask之app.route装饰器函数的参数
  • (第二周)效能测试
  • (个人笔记质量不佳)SQL 左连接、右连接、内连接的区别
  • (六)c52学习之旅-独立按键
  • (一)使用IDEA创建Maven项目和Maven使用入门(配图详解)
  • (转)Groupon前传:从10个月的失败作品修改,1个月找到成功
  • ./configure、make、make install 命令
  • .Net7 环境安装配置
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [Angularjs]asp.net mvc+angularjs+web api单页应用
  • [C++]二叉搜索树
  • [CDOJ 838]母仪天下 【线段树手速练习 15分钟内敲完算合格】
  • [Electron] 将应用打包成供Ubuntu、Debian平台下安装的deb包
  • [LeetCode刷题笔记]1 - 两数之和(哈希表)
  • [MICROSAR Adaptive] --- Hello Adaptive World
  • [node]Node.js 模块系统
  • [NOIP2015] 运输计划
  • [Silverlight]通过MVVM模式实现本地化/全球化(1)