


Memasukkan dan melintasi senarai terpaut secara rekursif dalam C++
Kami mendapat nilai integer yang digunakan untuk membentuk senarai terpaut. Tugasnya adalah untuk memasukkan dahulu dan kemudian melintasi senarai pautan tunggal menggunakan kaedah rekursif.
Tambah nod secara rekursif di penghujung LL → Keluar
-
Jika tidak cetak ( kepala → seterusnya )
Contoh
− 1 - 2 - 7 - 9 - 10
- Contoh Input
- − 1 - 2 - 7 - 9 - 10 Oput
kuat>− Senarai terpaut: 1 → 2 → 7 → 9 → 10 → NULL
Input− 12 - 21 - 17 - 94 - 18
Output− Senarai berpaut: 12 → → → 21 NULL: 12 → → 21 Cara yang digunakan dalam program berikut Seperti berikut
Dalam kaedah ini kita akan menggunakan fungsi untuk menambah nod dan melintasi senarai terpaut tunggal dan memanggilnya secara rekursif untuk input seterusnya.
Mengambil struct SLLNode* dengan integer dan penunjuk seterusnya.
Fungsi addtoEnd(SLLNode* head, int data) Mendapatkan penuding ke kepala senarai terpaut dan integer bahagian data, dan menambah nod pada penghujung senarai terpaut.
- Jika penunjuk kepala adalah NULL, senarai itu kosong, sekarang tambahkan nod baharu dan tetapkannya sebagai kepala. Tambah kepala → seterusnya sebagai NULL. Mengembalikan penuding ke nod
- Jika kepala bukan nol, gunakan head->next = addtoEnd(head->next, data) untuk menambah nod ke head → next.
- li>Fungsi traverseList(SLLNode* head) Traverses bermula dari kepala dan mencetak setiap nilai.
- Jika kepala adalah NULL, cetak NULL dan kembalikan
- Jika tidak, cetak nilai data dan gunakan traverseList(head->next) untuk melintasi yang seterusnya.
- Gunakan addtoEnd() dalam senarai ciptaan utama dan gunakan traverseList() untuk mencetak senarai.
- Contoh
#include <bits/stdc++.h> using namespace std; struct SLLNode { int data; SLLNode* next; }; SLLNode* addtoEnd(SLLNode* head, int data){ if (head == NULL){ SLLNode *nodex = new SLLNode; nodex->data = data; nodex->next = NULL; return nodex; } else{ head->next = addtoEnd(head->next, data); } return head; } void traverseList(SLLNode* head){ if (head == NULL){ cout <<"NULL"; return; } cout << head->data << " -> "; traverseList(head->next); } int main(){ SLLNode* head1 = NULL; head1 = addtoEnd(head1, 1); head1 = addtoEnd(head1, 8); head1 = addtoEnd(head1, 56); head1 = addtoEnd(head1, 12); head1 = addtoEnd(head1, 34); cout<<"Linked List is :"<<endl; traverseList(head1); return 0; }
Salin selepas log masukOutput
Jika kita menjalankan kod di atas, output berikut akan dihasilkanLinked List is : 1 -> 8 -> 56 -> 12 -> 34 -> NULL
Salin selepas log masuk
Atas ialah kandungan terperinci Memasukkan dan melintasi senarai terpaut secara rekursif dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas





Kedalaman rekursi fungsi C++ adalah terhad, dan melebihi had ini akan mengakibatkan ralat limpahan tindanan. Nilai had berbeza antara sistem dan penyusun, tetapi biasanya antara 1,000 dan 10,000. Penyelesaian termasuk: 1. Pengoptimuman rekursi ekor; 2. Panggilan ekor;

Ya, ungkapan Lambda C++ boleh menyokong rekursi dengan menggunakan std::function: Gunakan std::function untuk menangkap rujukan kepada ungkapan Lambda. Dengan rujukan yang ditangkap, ungkapan Lambda boleh memanggil dirinya secara rekursif.

Penggunaan MINUS dalam SQL dan contoh kod khusus Dalam SQL, MINUS ialah operator yang digunakan untuk melakukan operasi perbezaan antara dua set hasil. Ia digunakan untuk memadam baris yang sama daripada set hasil pertama seperti dalam set hasil kedua. Set hasil yang dikembalikan oleh operator MINUS akan mengandungi baris yang wujud hanya dalam set hasil pertama. Berikut menggunakan contoh kod khusus untuk menunjukkan penggunaan MINUS: Andaikan terdapat dua jadual - "jadual1" dan "jadual2", strukturnya adalah seperti berikut: Nama jadual: medan jadual1

Algoritma rekursif menyelesaikan masalah berstruktur melalui fungsi panggilan kendiri Kelebihannya ialah ia mudah dan mudah difahami, tetapi kelemahannya ialah ia kurang cekap dan boleh menyebabkan limpahan timbunan Algoritma bukan rekursif mengelakkan pengulangan dengan menguruskan secara eksplisit struktur data timbunan Kelebihannya ialah ia lebih cekap dan mengelakkan limpahan, kelemahannya ialah kod itu mungkin lebih kompleks. Pilihan rekursif atau bukan rekursif bergantung kepada masalah dan kekangan khusus pelaksanaan.

Java ialah bahasa pengaturcaraan yang popular dengan keupayaan pengendalian fail yang berkuasa. Di Java, melintasi folder dan mendapatkan semua nama fail adalah operasi biasa, yang boleh membantu kami mencari dan memproses fail dengan cepat dalam direktori tertentu. Artikel ini akan memperkenalkan cara melaksanakan kaedah melintasi folder dan mendapatkan semua nama fail dalam Java, dan memberikan contoh kod khusus. 1. Gunakan kaedah rekursif untuk melintasi folder Kita boleh menggunakan kaedah rekursif untuk melintasi folder.

Fungsi rekursif ialah teknik yang memanggil dirinya berulang kali untuk menyelesaikan masalah dalam pemprosesan rentetan. Ia memerlukan syarat penamatan untuk mengelakkan rekursi tak terhingga. Rekursi digunakan secara meluas dalam operasi seperti pembalikan rentetan dan pemeriksaan palindrom.

Pengoptimuman rekursif ekor (TRO) meningkatkan kecekapan panggilan rekursif tertentu. Ia menukarkan panggilan rekursif ekor kepada arahan lompat dan menyimpan keadaan konteks dalam daftar dan bukannya pada tindanan, dengan itu menghapuskan panggilan tambahan dan operasi kembali kepada tindanan dan meningkatkan kecekapan algoritma. Menggunakan TRO, kita boleh mengoptimumkan fungsi rekursif ekor (seperti pengiraan faktorial dengan menggantikan panggilan rekursif ekor dengan pernyataan goto, pengkompil akan menukar lompatan goto kepada TRO dan mengoptimumkan pelaksanaan algoritma rekursif).

1. Buka perisian wps dan masukkan antara muka operasi teks wps. 2. Cari pilihan sisipan dalam antara muka ini. 3. Klik pilihan Sisipkan dan cari pilihan Bentuk dalam kawasan penyuntingannya. 4. Klik pilihan bentuk dan cari pilihan yang disyorkan dalam sub-menunya. 5. Cari pilihan peta China dalam pilihan yang disyorkan. 6. Klik pada pilihan peta China dan seretnya dengan butang kiri tetikus di kawasan input penyuntingan untuk mendapatkan peta China yang kami perlukan.
