二叉树中节点的顺序插入(JS实现)

二叉树中节点的顺序插入(JS实现),第1张

每次插入节点需明确被插入的 父节点 以及被插入的 位置 (左右)

第1步中,需将A存储,因为A在第2,3步中被取出,作为插入 *** 作的父节点

第2步中,需将B存储,因为B在第4,5步中被取出,作为插入 *** 作的父节点

第3步中,需将C存储,因为C在第6步中被取出,作为插入 *** 作的父节点,与此同时,A在被执行右下方的插入 *** 作后,A不能再被插入子节点

...

第5步中,需将E存储,其在后续的 *** 作中会被取出,作为插入 *** 作的父节点,与此同时,B与A一样,在被执行右下方的插入 *** 作后,B不能再被插入子节点

建个队列 ,将后续 *** 作中会被取出的节点存储,不会再被取出的节点移除。每次插入的新节点都会入列。同时,若新节点被插入到父节点的右下方,则该父节点出列。

被插入的位置可以通过插入的次数来判断,若是第1次插入,则是根节点,若是第n(n>1)次插入,n为偶,则插入左边,n为奇,则插入右边

故用个变量 存储插入的次数

运行环境node v8.4

首先需要判断插入的节点是否为空节点

若是空节点,其不会作为父节点被执行插入 *** 作,故不用入列

我们仅仅知道用户点击的那一条数据,所以这条数据必须是唯一的才能构建一颗唯一的树结构,如果后端给不到你唯一的值,一定要让他给你生成一个唯一值id

我采用的string切割插入值

table初始化进来只有一层,并且是固定的

此时生成的是


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11575896.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存