javascript - Bagaimana untuk belajar rekursi?
漂亮男人
漂亮男人 2017-07-05 10:51:50
0
6
805

Sukar untuk difahami. Adakah anda mempunyai sebarang cadangan?

漂亮男人
漂亮男人

membalas semua(6)
三叔

Lihat jawapan saya sebelum ini untuk soalan rekursi Memahami rekursi dari segi pelaksanaan fungsi
Saya tidak tahu sama ada ia akan membantu anda.

大家讲道理

Pemahaman mudahnya ialah: panggilan fungsi自身.

Rekursi yang berkelayakan mesti ada 结束条件.

Fahami 2 perkara ini dan anda akan baik-baik saja.

我想大声告诉你
  1. Jika anda ingin belajar rekursi, anda mesti belajar rekursi dahulu.

  2. Rekursi ialah pemadat roti kukus, dan hadnya ialah roti kukus.

  3. Memberi contoh kod biasa:

Andaikan kita ingin melintasi struktur data [bersarang], seperti [atribut kanak-kanak bagi elemen DOM atau elemen DOM daripada jenis yang sama], maka rekursi yang paling mudah dan paling biasa akan digunakan: fungsi memanggil dirinya sendiri, lapisan mengikut lapisan Unnesting hanya memerlukan satu atau dua baris 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)
三叔

Rekursi sebenarnya tidak sukar untuk difahami. Biarkan saya memberi anda satu contoh. . Akan ada dua hasil apabila mencari sekali Anda tidak perlu mencari ke bawah untuk membuat pertimbangan.

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

Kod di atas mudah difahami tanpa menulis piawaian bermaksud memanggil dirinya sendiri untuk membentuk sarang
Oleh kerana hanya terdapat satu pernyataan pulangan, jadi selepas memanggil a(0) kita boleh melihatnya seperti ini:
Bersarang di:

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

Kembali:

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

Pengalaman pemandu berpengalaman: berlatih lebih lanjut dan pelajari lebih lanjut

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!