Inhaltsverzeichnis
Sehen wir uns verschiedene Eingabe- und Ausgabeszenarien dieser -
Die im Programm unten verwendete Methode ist wie folgt:
Beispiel
Ausgabe
Heim Backend-Entwicklung C++ Suchen Sie mithilfe der rekursiven Methode den n-ten Knoten aus der letzten verknüpften Liste in C++

Suchen Sie mithilfe der rekursiven Methode den n-ten Knoten aus der letzten verknüpften Liste in C++

Sep 15, 2023 pm 05:53 PM
链表 rekursive Methode Der n-te Knoten vom letzten

Suchen Sie mithilfe der rekursiven Methode den n-ten Knoten aus der letzten verknüpften Liste in C++

Gegeben sei eine einfach verknüpfte Liste und eine positive ganze Zahl N als Eingabe. Das Ziel besteht darin, mithilfe der Rekursion den N-ten Knoten am Ende der angegebenen Liste zu finden. Wenn die Eingabeliste Knoten a → b → c → d → e → f hat und N 4 ist, dann ist der vierte Knoten vom letzten c.

Wir werden zuerst bis zum letzten Knoten in der Liste durchlaufen und bei der Rückkehr von der rekursiven (Backtracking) Inkrementzählung. Wenn count gleich N ist, wird als Ergebnis ein Zeiger auf den aktuellen Knoten zurückgegeben.

Sehen wir uns verschiedene Eingabe- und Ausgabeszenarien dieser -

Eingabe- Liste an: - 1 → 5 → 7 → 12 → 2 → 96 → 33 N=3

Ausgabe− Der N-te Knoten von unten Erklären Sie

als: 2

− Der dritte Knoten ist 2.

Eingabe− Liste: - 12 → 53 → 8 → 19 → 20 →96 → 33 N=8 p>

Ausgabe- Knoten existiert nicht.

Erklärung - Die Liste hat nur 7 Knoten, daher kann es keinen 8. Knoten von unten geben.

Die im Programm unten verwendete Methode ist wie folgt:

Bei dieser Methode erreichen wir zuerst das Ende Liste mithilfe von Rekursion. Während des Backtrackings erhöhen wir eine statische Zählvariable. Sobald count gleich der Eingabe N ist, wird der aktuelle Knotenzeiger zurückgegeben.

  • Nehmen Sie einen Strukturknoten mit einem int-Datenteil und verwenden Sie Knoten als nächsten Zeiger.

    • Verwendet die Struktur Node und den Int-Datenteil. p>

    • Die Funktion addtohead(Node** head, int data) wird verwendet, um Knoten zum Kopf hinzuzufügen und eine einseitig verknüpfte Liste zu erstellen.

    • Verwenden Sie die obige Funktion, um eine einseitig verknüpfte Liste mit dem Kopf als Zeiger auf den ersten Knoten zu erstellen.
    • Die Funktion display(Node* head) wird verwendet, um die verknüpfte Liste von Anfang an zu drucken.

    • Nehmen Sie N als positive Ganzzahl.

    • Die Funktion findNode(Node* head, int n1) ruft den Zeiger auf head und n1 ab und gibt das Ergebnis aus, wenn der n1. Knoten von unten gefunden wird.

    • Nehmen Sie Blast als Zeiger auf den 1. Knoten vom letzten.

    • Rufen Sie searchNthLast(head, n1, &nlast) auf, um den Knoten zu finden.

    • Funktion searchNthLast(Node* head, int n1, Node** nlast) gibt einen Zeiger auf den n1-letzten Knoten vom Ende in der verknüpften Liste zurück, wobei der Kopf der erste Knoten ist.

    • Verwenden Sie statische Zählvariablen.

    • Wenn head NULL ist, wird nichts zurückgegeben.
    • Nehmen Sie tmp=head->next.

    • Rufen Sie searchNthLast(tmp, n1, nlast) auf, um rekursiv bis zum letzten Knoten zu durchlaufen. Nach

    • erhöht sich die Anzahl um 1.

    • Wenn count gleich n1 wird, dann setzen Sie *nlast=head.

    • Zum Schluss wird der Wert des Knotens, auf den nlast zeigt, als Ergebnis ausgegeben.

    Beispiel

    #include <bits/stdc++.h>
    using namespace std;
    struct Node {
       int data;
       Node* next;
    };
    void addtohead(Node** head, int data){
       Node* nodex = new Node;
       nodex->data = data;
       nodex->next = (*head);
       (*head) = nodex;
    }
    void searchNthLast(Node* head, int n1, Node** nlast){
       static int count=0;
       if (head==NULL){
          return;
       }
       Node* tmp=head->next;
       searchNthLast(tmp, n1, nlast);
       count = count + 1;
       if (count == n1){
          *nlast = head;
       }
    }
    void findNode(Node* head, int n1){
       Node* nlast = NULL;
       searchNthLast(head, n1, &nlast);
       if (nlast == NULL){
          cout << "Node does not exists";
       }
       else{
          cout << "Nth Node from the last is: "<< nlast->data;
       }
    }
    void display(Node* head){
       Node* curr = head;
       if (curr != NULL){
          cout<<curr->data<<" ";
          display(curr->next);
       }
    }
    int main(){
       Node* head = NULL;
       addtohead(&head, 20);
       addtohead(&head, 12);
       addtohead(&head, 15);
       addtohead(&head, 8);
       addtohead(&head, 10);
       addtohead(&head, 4);
       addtohead(&head, 5);
       int N = 2;
       cout<<"Linked list is :"<<endl;
       display(head);
       cout<<endl;
       findNode(head, N);
       return 0;
    }
    Nach dem Login kopieren

    Ausgabe

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

    Linked list is :
    5 4 10 8 15 12 20
    Nth Node from the last is: 12
    Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSuchen Sie mithilfe der rekursiven Methode den n-ten Knoten aus der letzten verknüpften Liste in C++. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Suchen Sie mithilfe der rekursiven Methode den n-ten Knoten aus der letzten verknüpften Liste in C++ Suchen Sie mithilfe der rekursiven Methode den n-ten Knoten aus der letzten verknüpften Liste in C++ Sep 15, 2023 pm 05:53 PM

Gegeben sei eine einfach verknüpfte Liste und eine positive ganze Zahl N als Eingabe. Das Ziel besteht darin, mithilfe der Rekursion den N-ten Knoten am Ende der angegebenen Liste zu finden. Wenn die Eingabeliste Knoten a→b→c→d→e→f hat und N 4 ist, dann ist der vierte Knoten vom letzten c. Wir werden zunächst bis zum letzten Knoten in der Liste durchlaufen und bei der Rückkehr von der rekursiven (Backtracking-)Inkrementzählung. Wenn count gleich N ist, wird als Ergebnis ein Zeiger auf den aktuellen Knoten zurückgegeben. Schauen wir uns hierfür verschiedene Eingabe- und Ausgabeszenarien an - Eingabeliste: -1→5→7→12→2→96→33N=3 Ausgabe − Der N-te Knoten vom letzten ist: 2 Erläuterung − Der dritte Knoten ist 2 . Eingabe − Liste: -12→53→8→19→20→96→33N=8 Ausgabe – Knoten existiert nicht

PHP-SPL-Datenstrukturen: Bringen Sie Geschwindigkeit und Flexibilität in Ihre Projekte PHP-SPL-Datenstrukturen: Bringen Sie Geschwindigkeit und Flexibilität in Ihre Projekte Feb 19, 2024 pm 11:00 PM

Überblick über die PHPSPL-Datenstrukturbibliothek Die PHPSPL-Datenstrukturbibliothek (Standard PHP Library) enthält eine Reihe von Klassen und Schnittstellen zum Speichern und Bearbeiten verschiedener Datenstrukturen. Zu diesen Datenstrukturen gehören Arrays, verknüpfte Listen, Stapel, Warteschlangen und Mengen, von denen jede einen bestimmten Satz von Methoden und Eigenschaften zum Bearbeiten von Daten bereitstellt. Arrays In PHP ist ein Array eine geordnete Sammlung, die eine Folge von Elementen speichert. Die SPL-Array-Klasse bietet erweiterte Funktionen für native PHP-Arrays, einschließlich Sortierung, Filterung und Zuordnung. Hier ist ein Beispiel für die Verwendung der SPL-Array-Klasse: useSplArrayObject;$array=newArrayObject(["foo","bar","baz"]);$array

Vergleich der zeitlichen Komplexität des Algorithmus von PHP-Arrays und verknüpften Listen Vergleich der zeitlichen Komplexität des Algorithmus von PHP-Arrays und verknüpften Listen May 07, 2024 pm 01:54 PM

Vergleich der Algorithmuszeitkomplexität von Arrays und verknüpften Listen: Zugriff auf Arrays O(1), verknüpfte Listen O(n); Einfügen von Arrays O(1), verknüpfte Listen Löschen von Arrays O(1). ), verknüpfte Listen O(n) (n); Sucharray O(n), verknüpfte Liste O(n).

Addiere 1 zu einer Zahl, die durch eine verknüpfte Liste dargestellt wird Addiere 1 zu einer Zahl, die durch eine verknüpfte Liste dargestellt wird Aug 29, 2023 pm 09:17 PM

Eine verknüpfte Listendarstellung einer Zahl wird wie folgt bereitgestellt: Alle Knoten der verknüpften Liste werden als eine Ziffer der Zahl betrachtet. Knoten speichern Zahlen so, dass das erste Element der verknüpften Liste die höchstwertige Ziffer der Zahl enthält und das letzte Element der verknüpften Liste die niedrigstwertige Ziffer der Zahl enthält. Beispielsweise wird die Zahl 202345 in der verknüpften Liste als (2->0->2->3->4->5) dargestellt. Um 1 zu dieser verknüpften Liste mit Zahlen hinzuzufügen, müssen wir den Wert des niedrigstwertigen Bits in der Liste überprüfen. Wenn es weniger als 9 ist, ist es in Ordnung, andernfalls ändert der Code die nächste Zahl und so weiter. Sehen wir uns nun ein Beispiel an, um zu verstehen, wie das geht: 1999 wird als (1->9->9->9) dargestellt und das Hinzufügen von 1 sollte es ändern

PHP-Datenstruktur: Der Charme verknüpfter Listen, Erkundung der dynamischen Datenorganisation PHP-Datenstruktur: Der Charme verknüpfter Listen, Erkundung der dynamischen Datenorganisation Jun 04, 2024 pm 12:53 PM

Eine verknüpfte Liste ist eine Datenstruktur, die eine Reihe von Knoten mit Daten und Zeigern zum Organisieren von Elementen verwendet und sich besonders für die Verarbeitung großer Datensätze und häufige Einfüge-/Löschvorgänge eignet. Zu seinen Grundkomponenten gehören Knoten (Daten und Zeiger auf den nächsten Knoten) und Kopfknoten (die auf den ersten Knoten in der verknüpften Liste zeigen). Zu den gängigen verknüpften Listenoperationen gehören: Hinzufügen (Endeinfügung), Löschen (spezifischer Wert) und Durchlaufen.

Python-Programm: Elemente an der ersten und letzten Position der verknüpften Liste hinzufügen Python-Programm: Elemente an der ersten und letzten Position der verknüpften Liste hinzufügen Aug 23, 2023 pm 11:17 PM

In Python ist eine verknüpfte Liste eine lineare Datenstruktur, die aus einer Folge von Knoten besteht, wobei jeder Knoten einen Wert und einen Verweis auf den nächsten Knoten in der verknüpften Liste enthält. In diesem Artikel besprechen wir, wie man in Python Elemente an der ersten und letzten Position einer verknüpften Liste hinzufügt. LinkedList inPython Eine verknüpfte Liste ist eine Referenzdatenstruktur, die zum Speichern einer Reihe von Elementen verwendet wird. In gewisser Weise ähnelt es einem Array, aber in einem Array werden die Daten an zusammenhängenden Speicherorten gespeichert, während in einer verknüpften Liste die Daten dieser Bedingung nicht unterliegen. Dies bedeutet, dass die Daten nicht sequentiell, sondern zufällig im Speicher abgelegt werden. Das wirft eine Frage auf: Wie können wir das erreichen?

Wie implementiert man verknüpfte Listenoperationen in der Go-Sprache? Wie implementiert man verknüpfte Listenoperationen in der Go-Sprache? Jun 10, 2023 pm 10:55 PM

LinkedList ist eine allgemeine Datenstruktur, die aus einer Reihe von Knoten besteht. Jeder Knoten enthält zwei Schlüsselattribute: Datenfeld (Data) und Zeigerfeld (Next). Unter diesen wird das Datenfeld zum Speichern tatsächlicher Daten verwendet, und das Zeigerfeld zeigt auf den nächsten Knoten. Auf diese Weise speichern verknüpfte Listen Daten auf eine flexible Art und Weise, die für viele verschiedene Anwendungsszenarien geeignet ist. In der Go-Sprache wird auch die verknüpfte Listenstruktur gut unterstützt. Der Inhalt wird in der integrierten Standardbibliothek von Go bereitgestellt

Erstellen Sie eine leistungsstarke verknüpfte Listenstruktur, geschrieben in Golang Erstellen Sie eine leistungsstarke verknüpfte Listenstruktur, geschrieben in Golang Jan 28, 2024 am 08:01 AM

Golang ist eine leistungsstarke Programmiersprache, deren Parallelitätsfähigkeiten und Speicherverwaltung sie ideal zum Schreiben effizienter Datenstrukturen machen. Eine verknüpfte Liste ist eine gängige Datenstruktur. Im Folgenden wird erläutert, wie Sie mit Golang eine effiziente verknüpfte Listenstruktur schreiben und spezifische Codebeispiele bereitstellen. Eine verknüpfte Liste ist eine lineare Datenstruktur, die aus Knoten besteht. Jeder Knoten enthält einen Wert und einen Zeiger auf den nächsten Knoten. Im Vergleich zu Arrays besteht der Vorteil verknüpfter Listen darin, dass das Einfügen und Löschen von Elementen effizienter ist, da keine anderen Elemente verschoben werden müssen. Allerdings ist die Kette

See all articles