Kendisini çağıran Onun bir fonksiyonu. Onun ağaçlar gibi kendilerini tekrar belirli veri yapılarını, yürüyüş için yararlıdır. Bir HTML DOM klasik bir örneğidir.
Javascript bir ağaç yapısı ve 'yürüyüş' ağaç için bir özyinelemeli fonksiyonun bir örneğidir.
1
/ \
2 3
/ \
4 5
-
var tree = {
id: 1,
left: {
id: 2,
left: null,
right: null
},
right: {
id: 3,
left: {
id: 4,
left: null,
right: null
},
right: {
id: 5,
left: null,
right: null
}
}
};
Ağaç yürümek, biz aynı işlevi geçerli düğümün alt düğümlerin geçen, defalarca aynı işlevi çağırın. Biz ilk önce sol düğümde, yeniden işlevini çağırın ve sonra sağda.
Bu örnekte, ağacın maksimum derinliği alırsınız
var depth = 0;
function walkTree(node, i) {
//Increment our depth counter and check
i++;
if (i > depth) depth = i;
//call this function again for each of the branch nodes (recursion!)
if (node.left != null) walkTree(node.left, i);
if (node.right != null) walkTree(node.right, i);
//Decrement our depth counter before going back up the call stack
i-;
}
Nihayet biz işlevini çağırın
alert('Tree depth:' + walkTree(tree, 0));
Anlayış özyineleme harika bir yoldur zamanında kod boyunca adım olduğunu.