我是靠谱客的博主 过时冰棍,最近开发中收集的这篇文章主要介绍递归遍历示例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

递归遍历树

getTreeList (list) {
const vm = this
for (let item of list) {
item.label = item.menucname
item.id = item.taskcode
if(vm.flag === '0'){ //查看过来树禁用
item.disabled = true
}
vm.expandList.push(item.taskcode) // 树默认展开一级菜单的集合
item.children = item.childMenuList
if (item.children && item.children.length > 0) {
vm.getTreeList(item.children);
}
}
vm.list1length += list.length
//总长度
console.log(vm.list1length, '总长度');
vm.treeList = data.data
// 判断全选按钮是否勾选
if(vm.checkedList.length === (vm.list1length+vm.list2length+vm.list3length+vm.list4length)){
vm.checkAll=true
}
}

一般递归实现阶乘

function fact(n) {
if (n == 0 || n == 1) {
return 1;
} else {
return n * fact(n - 1);
}
}
一般递归需要中栈上维护函数的调用信息直到函数返回后才释放,容易发生『栈溢出』错误。但对于尾递归来说,
只需要维护一个调用记录。

尾递归实现阶乘:

什么是尾递归?
在计算机科学里,尾调用是指一个函数里的最后一个动作是一个函数调用的情形:即这个调用的返回值直接被当前函数返回的情形。这种情形下称该调用位置为尾位置。若这个函数在尾位置调用本身(或是一个尾调用本身的其他函数等等),则称这种情况为尾递归,是递归的一种特殊情形。—— 维基百科

function fact-iter(n, a) {
if (n == 0) {
return 1;
} else if (n == 1) {
return a;
} else {
return fact-iter(n - 1, n * a);
}
}
function fact(n) {
return fact-iter(n, 1);
}

最后

以上就是过时冰棍为你收集整理的递归遍历示例的全部内容,希望文章能够帮你解决递归遍历示例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部