请教一下

[复制链接]
查看11 | 回复2 | 2021-1-27 05:08:48 | 显示全部楼层 |阅读模式
怎样创建一个存储二叉树的队列
分 -->
回复

使用道具 举报

千问 | 2021-1-27 05:08:48 | 显示全部楼层
不知道你说的是不是SQL层面的处理,就当是吧


ifobject_id('tempdb..#tab')isnotnulldroptable#tab
createtable#tab(IDnvarchar(50),ParentIDnvarchar(50),Namenvarchar(50))
insertinto#tab(ID,ParentID,Name)
select'1','-','A'unionall
select'2','1','B'unionall
select'3','1','C'unionall
select'4','2','D'unionall
select'5','2','E'unionall
select'6','3','F'unionall
select'7','3','G'unionall
select'8','4','H'unionall
select'9','4','I'unionall
select'10','8','J'unionall
select'11','10','K'
;withtas(
selectID,ParentID,Name,1aslv,cast(Nameasnvarchar(max))aspathfrom#tabwhereParentID='-'
unionall
selecta.ID,a.ParentID,a.Name,(t.lv+1)aslv,(t.path+'-'+a.Name)aspath
from#tabainnerjointona.ParentID=t.ID
)
selectName,lv,pathfromt



回复

使用道具 举报

千问 | 2021-1-27 05:08:48 | 显示全部楼层
不是,是用队列进行二叉树的层次遍历
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行