每次插入节点需明确被插入的 父节点 以及被插入的 位置 (左右)
第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初始化进来只有一层,并且是固定的
此时生成的是
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)