Php 如何得到二叉树的极左节点或极右节点?

Php 如何得到二叉树的极左节点或极右节点?,php,mysql,binary-tree,Php,Mysql,Binary Tree,我的数据库结构是 我已经写下了处理二叉树的所有查询,只剩下大部分节点的查找是挂起的。我在stackoverflow上也得到了这个解决方案,但这是SQL的,但我想在Mysql中找到这个链接。有人能在MYSQL中为我更改它吗 这是我的MYSQL存储过程 CREATE DEFINER=`root`@`localhost` PROCEDURE `getLeftMost`(IN `iNode` INT) BEGIN DECLARE left_id int; DECLARE prev_id int; SE

我的数据库结构是

我已经写下了处理二叉树的所有查询,只剩下大部分节点的查找是挂起的。我在stackoverflow上也得到了这个解决方案,但这是SQL的,但我想在Mysql中找到这个链接。有人能在MYSQL中为我更改它吗

这是我的MYSQL存储过程

CREATE DEFINER=`root`@`localhost` PROCEDURE `getLeftMost`(IN `iNode` INT)
BEGIN

DECLARE left_id int;
DECLARE prev_id int;
SET prev_id=iNode;


SELECT lnode into left_id from binTree where nodeid=iNode;

CREATE TEMPORARY table IF NOT EXISTS temp_table as (select * from binTree where 1=0);
TRUNCATE table temp_table;

WHILE  left_id <> 0 DO
INSERT INTO temp_table SELECT * FROM binTree where nodeid=prev_id;
SET prev_id=left_id;
SELECT lnode into left_id from binTree where nodeid=prev_id;
END WHILE;

SELECT lnode as `leaf_node` FROM temp_table order by nodeid desc limit 0,1;

END

谢谢

我建议您先用MySQL搜索递归查询,然后再寻求我们的帮助。我们不是来做你的工作,而是来帮助你。我们已经尝试过了,但当树的深度增加时,这会花费很多时间,比如如果有1个lac记录,那么它会花费很多时间告诉我们你尝试了什么请用你宝贵的努力提交问题。请检查我是否编辑了我的书面代码