javascript - Comment apprendre la récursion?
漂亮男人
漂亮男人 2017-07-05 10:51:50
0
6
858

C'est difficile à comprendre. Avez-vous des suggestions ?

漂亮男人
漂亮男人

répondre à tous(6)
三叔

Regardez ma réponse précédente à une question de récursion. Comprendre la récursion en termes d'implémentation de fonctions
Je ne sais pas si cela vous sera utile.

大家讲道理

La compréhension simple est la suivante : appel de fonction自身.

Une récursion qualifiée doit avoir 结束条件.

Comprenez ces 2 points et tout ira bien.

我想大声告诉你
  1. Si vous voulez apprendre la récursivité, vous devez d'abord apprendre la récursivité.

  2. La récursion est le remplissage des petits pains cuits à la vapeur, et la limite est celle des petits pains cuits à la vapeur.

  3. Donne un exemple de code normal :

Supposons que nous voulions parcourir une structure de données [imbriquée], telle que [l'attribut enfants d'un élément DOM ou un élément DOM du même type], alors la récursivité la plus simple et la plus courante sera utilisée : la fonction s'appelle elle-même, couche par calque Le désimbrication ne nécessite qu'une ou deux lignes de JS :

function walk (node) {
  // 先打印出本节点的值
  console.log(node.value)
  // 对每个 child 调用自身
  node.children.forEach(child => walk(chid))
}

// 简单的树形嵌套数据结构示例
const tree = {
  value: 1,
  children: [
    { value: 2, children: [] },
    { value: 3, children: [{ value: 4, chilren: [] }] },
    { value: 5, children: [] }
  ]
}
// 遍历该树形数据结构
walk(tree)
三叔

La récursion n'est en fait pas difficile à comprendre. Laissez-moi vous donner un exemple. Il y a des pommes sur un seul étage d'un immeuble de 6 étages, si nous trouvons une pomme à n'importe quel étage, nous nous arrêterons. . Il y aura deux résultats lors d'une recherche une fois. Vous n'avez pas besoin de chercher vers le bas pour porter un jugement. Rechercher vers le bas signifie répéter le premier processus.

Peter_Zhu
int i;
int function a(i){
    if (i < 2) return a(i+1);
    else return i;
}
a(0);    //执行后返回2

Le code ci-dessus est facile à comprendre sans écrire de normes. La récursion signifie s'appeler pour former un nid
Parce qu'il n'y a qu'une seule instruction return, donc après avoir appelé a(0), nous pouvons le voir comme ceci :
Imbriqué dans :

a(0)->a(a(0+1))->a(a(1))
a(a(a(1+1)))->a(a(a(2)))

De retour :

a(a(a(2)))->a(a(2))
a(a(2))->a(2)
a(2)->2
曾经蜡笔没有小新

Expérience d'un chauffeur expérimenté : pratiquez davantage et apprenez davantage

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal