verlinkte Liste: Dies ist eine verknüpfte Liste, die wir umkehren möchten.
Nach der umgekehrten verknüpften Liste: Das folgende ist das Ergebnis nach Umkehrung der obigen Liste.
Im obigen Beispieldiagramm können wir sehen, dass der Kopfknoten und der Heckknoten ihre Positionen ändern, wenn wir die verknüpfte Liste umkehren. Der Kopfknoten, der jetzt ein Heckknoten ist, zeigt auf den Nullknoten, weil er jetzt ein Heckknoten ist.
Algorithmusschritte
Wir werden die umgekehrte verknüpfte Liste mithilfe eines bildlichen Formulars erklären, um das Verständnis zu erleichtern. Beginnen wir also mit dem Beispiel.
Das folgende ist eine verknüpfte Liste, die wir umkehren möchten.
Schritt 1. Der grün gefärbte Knoten ist ein Kopfknoten, der auf den ersten Knoten im Start zeigt.
Schritt 2. Im nächsten Schritt durchqueren wir die gesamte verknüpfte Liste, bis wir den Nullzeiger nicht neben dem Headerknoten bekommen. Dafür werden wir dem nächsten Knoten einen temporären Namen zuweisen, wie im folgenden Diagramm gezeigt.
Schritt 3. Da wir einen neuen Referenzknoten mit dem Namen "Temporary" haben, der uns helfen kann, die gesamte verknüpfte Liste zu durchqueren, bis wir den Nullzeiger nicht erhalten, können wir den nächsten Link des Header -Knoten Liste wie unten im Diagramm gezeigt. Der Nullzeiger neben dem aktuellen Knoten wird als vorheriger Knoten bezeichnet.
Schritt 4. Jetzt verschieben wir den temporären Knoten auf den nächsten Knoten und den aktuellen Knoten zum vorherigen temporären Knoten. Jetzt sind wir zum nächsten Knoten umgezogen. Wir ändern auch den vorherigen Knoten von Null auf nur den vorherigen Knoten des aktuellen Knotens. Jetzt kümmert sich der temporäre Knoten also um alle Traversen bis zum Nullzeiger, sodass wir den Link des aktuellen Knotens auf den vorherigen Knoten einstellen können, und nun zeigt er auf den vorherigen Knoten, wie im folgenden Diagramm gezeigt.
Daher befolgen wir die gleichen Schritte und erhalten schließlich eine umgekehrte verknüpfte Liste.
Schritt 5.
Schritt 6.
Schritt 7.
Schritt 8.
Schritt 9.
Schritt 10.
Schritt 11.
Schritt 12.
Schritt 13.
Schritt 14. In diesem Schritt kehrte sich unsere verknüpfte Liste um.
C ++ - Programm, um eine verknüpfte Liste umzukehren
#enthalten
Verwenden von Namespace STD;
// Methode zum Erstellen des Knotens
Strukturknoten
int Wert;
Knoten *NextNodeptr;
*nodeObject;
void CreateLinkedList (int n);
void ReverSelinkedList (Knoten ** nodeObject);
void display ();
int main ()
int n, Wert, Element;
Cout<<"How many nodes you want to create =>: ";
Cin >> n;
CreateLinkedList (n);
Cout<<"\nInformation in the linked list: \n";
Anzeige();
Cout<<"\nLinked list after reversed\n";
ReverSelinkedList (& nodeObject);
Anzeige();
Rückkehr 0;
// Diese Methode erstellt die verknüpfte Liste
void CreateLinkedList (int n)
Struct Node *FrontNode, *tempnode;
int Wert, ich;
nodeObject = (struct node *) malloc (sizeof (struct node));
if (nodeObject == null)
Cout<<" Not enough to assing memory";
anders
Cout<<"Please enter the info of node 1 (number only): ";
CIN >> Wert;
nodeObject-> value = value;
nodeObject-> nextNodeptr = null;
tempnode = nodeObject;
für (i = 2; i<=n; i++)
frontNode = (struct node *) malloc (sizeof (struct node));
// Wenn kein Knoten in der verlinkten Liste
if (FrontNode == null)
Cout<<"Memory can not be allocated";
brechen;
anders
Cout<<"Please enter the info of node "<CIN >> Wert;
FrontNode-> value = value;
FrontNode-> NextNodeptr = null;
tempnode-> nextnodeptr = FrontNode;
tempnode = tempnode-> amtnodeptr;
void ReverSelinkedList (Knoten ** nodeObject)
struct node *tempnode = null;
struct node *vorhernode = null;
struct node *currentNode = ( *nodeObject);
while (currentNode != Null)
tempnode = currentNode-> nextNodeptr;
currentNode-> nextNodeptr = vorhernode;
vorhernode = currentNode;
currentNode = tempnode;
(*nodeObject) = vorhernode;
void display ()
struct node *tempnode;
if (nodeObject == null)
Cout<<"Linkedlist is empty";
anders
tempnode = nodeObject;
while (tempnode != Null)
Cout<Wert<<"\t";
tempnode = tempnode-> amtnodeptr;
Cout <
Ausgang
Wie viele Knoten möchten Sie erstellen =>: 6Abschluss
In diesem LinuxHint -Artikel wurde überprüft, wie eine verknüpfte Liste in c umgekehrt werden kann++. Es gibt einige andere Methoden, um eine verknüpfte Liste umzukehren, aber dies ist eine sehr häufige Methode, um eine verknüpfte Liste umzukehren. Es liegt an Ihnen zu entscheiden, wie Sie Ihre Probleme lösen möchten, aber im Allgemeinen sollte die umgekehrte Listenfunktion eine einfache Schleife mit Zeigerwechsel sein.