距离最远的两个节点就是深度最深的两个叶子结点。
我们可以对整个二叉树进行一次遍历,记录每个节点的深度,最远的两个节点一定是两个叶子节点。我们只需要在遍历过程中找到两个深度最深的叶子节点。那么这两个节点的距离就是最远的。整个算法的时间复杂度是O(n),可以期望很快就能找到这两个相距最远的节点。
1:排出一个版,包含上下切换的标识和导航,所有隐藏,给第一张加一个class名,样式设为显示,导航的第一个加一个class名,加上背景色;
2:获取节点;
3:给向下切换写一个点击事件,点击切换到下一张,注意当切换到最后一张的时候会报错,所以必须要判断一下,当切换到最后一张的时候在,再次击会切换到第一张;
4:给向上切换写一个点击事件,注意当切换到第一张之后会报错,所以必须要判断一下,当切换到第一的时候,再次点击会切换到最后张,循环起来;
5:写一个定时器,定时器的播放顺序和向下切换一致,可以封装一个函数方便调用;
6:写鼠标划入事件,清除定时器;
7:写鼠标移出事件,定时器继续运行;
8:导航的点击事件
点击事件click
定时器setlnterval()
if判断
for()循环
1 通过unicreateSelectorQuery() 来实现,
注意:要获得的高度,是在页面上dom已经渲染完成之后才能获得
我使用的是页面生命周期 onReady()中调用的
let _this = this;
const query = unicreateSelectorQuery()
queryselect('#tab')boundingClientRect()
queryselectViewport()scrollOffset()
queryexec(function(res){
debugger
// res[0]top // #tab节点的上边界坐标
// res[1]scrollTop // 显示区域的竖直滚动位置
_thisheight=resuwindowHeight-res[0]top +'px'
consolelog('高度',res[0]height);
consolelog('demo的元素的信息',res);
})
我是用于实现页面滚动后把列表的导航条吸附在顶部,在微信小程中使用有效,在app端使用这个方法不能获取到距离顶部的高度,只有demo元素的信息
以上就是关于求树中每对节点间距离的O算法的递推关系,怎么处理全部的内容,包括:求树中每对节点间距离的O算法的递推关系,怎么处理、怎么用js的原生写法写出来一个轮播图呢、uniapp获取元素到顶部的距离等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)