Heim > Backend-Entwicklung > C++ > Rekursives Einfügen und Durchlaufen verknüpfter Listen in C++

Rekursives Einfügen und Durchlaufen verknüpfter Listen in C++

PHPz
Freigeben: 2023-09-10 09:21:13
nach vorne
948 Leute haben es durchsucht

Rekursives Einfügen und Durchlaufen verknüpfter Listen in C++

Wir erhalten die ganzzahligen Werte, die zur Bildung der verknüpften Liste verwendet werden. Die Aufgabe besteht darin, zuerst die einfach verknüpfte Liste einzufügen und sie dann mithilfe der rekursiven Methode zu durchlaufen.

Knoten am Ende rekursiv hinzufügen

  • Wenn der Kopf NULL ist → Knoten zum Kopf hinzufügen

  • Ansonsten zum Kopf hinzufügen (Kopf → Weiter)

Rekursiv durch die Knoten iterieren

  • Wenn der Kopf NULL ist → Beenden

  • Andernfalls drucken (Kopf → Weiter)

Beispiel

Eingabe− 1 - 2 - 7 - 9 - 10

Ausgabe

Ausgabe stark>−. Link Ed-Liste: 1 → 2 → 7 → 9 → 10 → NULL

Eingabe− 12 - 21 - 17 - 94 - 18

Ausgabe− Verknüpfte Liste: 12 → 21 → 17 → 94 → 18 → NULL

Die verwendete Methode im folgenden Programm wie folgt

In dieser Methode verwenden wir Funktionen, um Knoten hinzuzufügen und einfach verknüpfte Listen zu durchlaufen und sie für die nächste Eingabe rekursiv aufzurufen.

  • Akzeptiert eine Struktur SLLNode* mit einer Ganzzahl und einem nächsten Zeiger.

  • Funktion addtoEnd(SLLNode* head, int data) Ruft den Zeiger auf den Kopf der verknüpften Liste und die Ganzzahl des Datenteils ab und fügt den Knoten am Ende der verknüpften Liste hinzu.

    li>
  • Wenn der Kopfzeiger NULL ist, ist die Liste leer. Fügen Sie nun einen neuen Knoten hinzu und legen Sie ihn als Kopf fest. Füge head → next als NULL hinzu. Gibt einen Zeiger auf den Knoten zurück

  • Wenn head nicht null ist, verwenden Sie head->next = addtoEnd(head->next, data), um den Knoten zu head → next hinzuzufügen.

  • Function traverseList(SLLLNode* head) Durchläuft beginnend mit head und druckt jeden Wert.

  • Wenn head NULL ist, geben Sie NULL aus und geben Sie

  • zurück. Andernfalls drucken Sie den Datenwert aus und verwenden Sie traverseList(head->next), um den nächsten zu durchlaufen.

  • Verwenden Sie addtoEnd() in der Haupterstellungsliste und verwenden Sie traverseList(), um die Liste zu drucken.

Beispiel

#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;
}
Nach dem Login kopieren

Ausgabe

Wenn wir den obigen Code ausführen, wird die folgende Ausgabe generiert

Linked List is :
1 -> 8 -> 56 -> 12 -> 34 -> NULL
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonRekursives Einfügen und Durchlaufen verknüpfter Listen in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage