bst表有两个字段N(当前结点号),P(父结点),结点升序判断结点是根结点、叶子结点、内部结点
思路:
1、根结点判断,父结点是否为空
2、叶子结点,父结点号为当前结点号的记录个数为0
3、内部结点,父结点号为当前结点号的记录个数不为0
sql语句为
select r1.N, case when (r1.P is NULL) then 'Root'
when (select count(1) > 0
from bst r2 where r2.P = r1.N) then 'Inner'
else 'Leaf'
end
from bst r1 order by N;