二叉树中节点的顺序插入(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

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

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

然后根据鼠标左键在菜单坐标内按下放开的事件提取当前鼠标的x,y坐标,然后修改属性菜单的top和left属性 或者当鼠标在菜单坐标内按下之后触发鼠标的移动事件,然后在移动事件里设置菜单的top和left对应鼠标当前坐标y和x,这样当鼠标移动时菜单的坐标也会根本改变,实现同步移动

1、手动的改成树形结构,在二级opint标签的内容前面加入空格,形成树形的样子。

2、用div等标签做成模拟的select下拉框。

目前除此之外应该没有其它的办法能做到。

不要找我要代码,自己试试。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存