Jadual Kandungan
Tambah nod secara rekursif di penghujung LL → Keluar
− 1 - 2 - 7 - 9 - 10
Fungsi addtoEnd(SLLNode* head, int data) Mendapatkan penuding ke kepala senarai terpaut dan integer bahagian data, dan menambah nod pada penghujung senarai terpaut.
Rumah pembangunan bahagian belakang C++ Memasukkan dan melintasi senarai terpaut secara rekursif dalam C++

Memasukkan dan melintasi senarai terpaut secara rekursif dalam C++

Sep 10, 2023 am 09:21 AM
rekursi Melintasi masukkan

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

Input

− 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 masuk

    Output

  • Jika kita menjalankan kod di atas, output berikut akan dihasilkan
  • Linked 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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Pelaksanaan rekursif fungsi C++: Adakah terdapat had untuk kedalaman rekursif? Pelaksanaan rekursif fungsi C++: Adakah terdapat had untuk kedalaman rekursif? Apr 23, 2024 am 09:30 AM

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;

Adakah ungkapan lambda C++ menyokong rekursi? Adakah ungkapan lambda C++ menyokong rekursi? Apr 17, 2024 pm 09:06 PM

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.

Menggunakan operator MINUS dalam SQL Menggunakan operator MINUS dalam SQL Feb 18, 2024 pm 04:53 PM

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

Pelaksanaan rekursif fungsi C++: Analisis perbandingan algoritma rekursif dan bukan rekursif? Pelaksanaan rekursif fungsi C++: Analisis perbandingan algoritma rekursif dan bukan rekursif? Apr 22, 2024 pm 03:18 PM

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 bagaimana untuk menggelung melalui folder dan mendapatkan semua nama fail Java bagaimana untuk menggelung melalui folder dan mendapatkan semua nama fail Mar 29, 2024 pm 01:24 PM

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.

Penjelasan terperinci tentang rekursi fungsi C++: aplikasi rekursi dalam pemprosesan rentetan Penjelasan terperinci tentang rekursi fungsi C++: aplikasi rekursi dalam pemprosesan rentetan Apr 30, 2024 am 10:30 AM

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.

C++ Recursion Advanced: Memahami Pengoptimuman Rekursi Ekor dan Aplikasinya C++ Recursion Advanced: Memahami Pengoptimuman Rekursi Ekor dan Aplikasinya Apr 30, 2024 am 10:45 AM

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).

Bagaimana untuk memasukkan grafik dan teks peta China ke dalam dokumen wps Bagaimana untuk memasukkan grafik dan teks peta China ke dalam dokumen wps Mar 27, 2024 pm 02:01 PM

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.

See all articles