In C ++ können wir einen neuen Knoten auf drei Arten in eine verknüpfte Liste einfügen:
Lassen Sie uns darüber sprechen, wie jede der verknüpften Listeneinfügungsmethoden einzeln durchführt.
Zu Beginn der verlinkten Liste
Um einen Knoten zu Beginn der verlinkten Liste hinzuzufügen, müssen wir folgende Schritte befolgen:
Als nächstes wäre null, wenn dieser Newnode der erste Knoten in der verlinkten Liste ist.
Am Ende der verlinkten Liste
Um einen Knoten am Ende der verknüpften Liste hinzuzufügen, müssen wir folgende Schritte befolgen:
Nach einem bestimmten Knoten in der verlinkten Liste
Um einen Knoten an der n -ten Position der verknüpften Liste hinzuzufügen, müssen wir folgende Schritte befolgen:
C ++ Program Implemenation für die Knoteninsertion in verknüpfter Liste:
// Programm zum Einfügen in eine verknüpfte Liste in C abschließen++
#enthalten
Verwenden von Namespace STD;
Klassenknoten
öffentlich:
int Daten;
Knoten *Weiter;
;
void InsertatBegNningLinkedList (Knoten ** Headnode, int Data)
// Erstellen Sie dynamisch Speicher für diesen Newnode
Node* newnode = new node ();
newnode-> data = data;
newnode-> next = *headnode;
*headnode = newnode;
Cout << newNode->Daten << " inserted data successfully"
"In verknüpfte Liste" << endl;
void InsertatLastlinkedList (Knoten ** Headnode, int Data)
Node* newnode = new node ();
newnode-> data = data;
// Letzter Knoten immer auf null zeigt
newnode-> next = null;
// Wenn die verknüpfte Liste leer war
if (*headnode == null)
*headnode = newnode;
Cout << newNode->Daten << " inserted data successfully"
"In verknüpfte Liste" << endl;
zurückkehren;
Knoten * tempnode = * headnode;
// erreichen Sie den letzten Knoten der verknüpften Liste
während (Tempnode-> Weiter!= Null)
tempnode = tempnode-> Weiter;
// Die nächste des letzten Knotens Newnode zuweisen
tempnode-> next = newnode;
Cout << newNode->DatenGröße ++;
Renditegröße;
void InsertafternthnodelinkedList
(Int N, int Data, Knoten ** Headnode)
int loc = n;
int size = lengthoflinkedList (*headnode);
// Keine negativen Positionseinsätze zulässig
// Einfügung ist nicht möglich, wenn der Standort größer ist
// als die Größe der verknüpften Liste.
if (n < 0 || n > Größe)
Cout << "Insert position not valid";
if (n == 0)
InsertatBegNingLinkedList (Headnode, Data);
anders
Node* newnode = new node ();
newnode-> data = data;
newnode-> next = null;
// verwendete Tempnode, um die verknüpfte Liste durchzusetzen
Knoten * tempnode = * headnode;
// Überqueren Sie, bis Sie den n -ten Knoten erreichen
while (-n)
tempnode = tempnode-> Weiter;
// Zu den nächsten des N -ten Knoten.
newnode-> next = tempnode-> next;
// Zuwenden Sie den N -ten Knoten neben diesem neuen Knoten
tempnode-> next = newnode;
// Newnode eingefügt
Cout << newNode->Daten << " inserted data after index " <
void printlinkedList (Knoten* Knoten)
Cout << "\n";
// während der Zustand aufhört, wenn node == null
während (Knoten!= Null)
Cout << node->Daten << " "; node = node->nächste;
Cout << "\n" << endl;
int main ()
Node* headnode = null;
InsertAtBegNningLinkedList (& Headnode, 10);
InsertAtBegNningLinkedList (& Headnode, 9);
InsertAtBegNningLinkedList (& Headnode, 8);
printlinkedList (headnode);
InsertAtLastLinkedList (& Headnode, 11);
InsertAtLastLinkedList (& Headnode, 12);
InsertAtLastLinkedList (& Headnode, 14);
printlinkedList (headnode);
// Fügt Daten an der jeweiligen Position ein
InsertAfTHnodelinkedList (5, 17 & Headnode);
InsertAfTHnodelinkedList (1, 11 & headnode);
printlinkedList (headnode);
Rückkehr 0;
Ausgang:
10 Eingefügte Daten erfolgreich into -verknüpfte Liste
9 Eingefügte Daten erfolgreich verlinkte Liste
8 Eingeklagte Daten erfolgreich intino -Linked List
8 9 10
11 Eingefügte Daten am Ende
12 Eingefügte Daten am Ende
14 Eingefügte Daten am Ende
8 9 10 11 12 14
17 Eingefügte Daten nach Index 5
11 Eingefügte Daten nach Index 1 eingefügt
8 11 9 10 11 12 17 14
Erläuterung:
Der Code definiert eine Klasse mit dem Namen Knoten mit zwei Eigenschaften: (1) Daten (vom Typ int), um den Wert des Knotens zu speichern, und (2) als nächstes (vom Typ Knoten*), um den Zeiger auf den nächsten Knoten in der Liste zu speichern.
Das Programm implementiert drei Funktionen, um die Knoten in die verknüpfte Liste einzufügen:
Ein Ganzzahldaten und ein Doppelzeiger auf den Kopfknoten der verknüpften Liste werden an die Funktion InsertatBegNingLinkedList () übergeben. Mit dem neuen Node () wird der Speicher eines neuen Knotens dynamisch erstellt, und die Daten werden dann dem neuen Knoten zugeordnet. Später aktualisiert es den Kopfknoten so, dass es sich um den neuen Knoten handelt, indem der nächste Zeiger des neuen Knotens auf den vorherigen Kopfknoten eingestellt wird.
Ein Ganzzahldaten und ein Doppelzeiger auf den Kopfknoten der verknüpften Liste werden an die Methode InsertAtlastlinkedList () übergeben. Mit dem neuen Node () wird der Speicher eines neuen Knotens dynamisch erstellt, und die Daten werden dann dem neuen Knoten zugeordnet. Der nächste Zeiger des neuen Knotens wird dann auf null gesetzt. Wenn die verknüpfte Liste leer ist, wird der Kopfknoten aktualisiert, um als neuer Knoten zu dienen. In jedem anderen Fall durchquert es die verknüpfte Liste, bis sie den letzten Knoten erreicht. Zu diesem Zeitpunkt wird der neue Knoten auf den nächsten Zeiger des letzten Knotens gesetzt.
Die Funktion InsertFernthnodelinkedList () fügt einen neuen Knoten mit den angegebenen Daten nach dem N -ten Knoten in einer verknüpften Liste hinzu. Die verknüpfte Liste und ihre Größe sowie die Position N und die zu fügigen Daten werden als Argumente übergeben. Erstens überprüft die Funktion, ob der Ort n korrekt ist (i.e., Nicht negativ und nicht größer als die Größe der verknüpften Liste). Fehlermeldungen werden gedruckt, wenn die Position ungültig ist. Wenn die Position gültig ist, konstruiert die Funktion einen neuen Knoten, legt ihre Daten und die nächsten Felder fest und sucht dann iterativ über die verknüpfte Liste, um den N -ten Knoten zu finden. Dann verbindet es den n -ten Knoten und den neuen Knoten, indem die nächsten Zeiger des n -ten Knotens und des neuen Knotens geändert werden.
Die Länge der verknüpften Liste wird von der Funktion Länge () zurückgegeben, die einen Zeiger auf den Kopfknoten der verknüpften Liste akzeptiert. Dies wird erreicht, indem Sie in der verlinkten Liste umgehen, die Knoten zählen und die Anzahl zurückgeben.
In der Hauptmethode erstellt das Programm eine leere verknüpfte Liste und ruft dann alle drei Einfügungsmethoden mit verschiedenen Daten- und Positionseingaben auf. Schließlich druckt es die verknüpfte Liste, um die Ergebnisse anzuzeigen.
Abschluss
Je nachdem, wo eine Einführung in eine verknüpfte Liste aufgenommen wird, gibt es verschiedene zeitliche und räumliche Komplexitätsprobleme. Als äußerst wirksamer Betrieb hat das Einsetzen zu Beginn der Liste eine konstante Zeitkomplexität von O (1) und eine konstante Raumkomplexität von O (1). Im schlimmsten Szenario benötigt das Einfügen am Ende der Liste die linear. Dies ist so, dass wir den Heckknoten entdecken können, indem wir die Liste durchqueren. Im schlimmsten Fall benötigt das Einfügen an einer bestimmten Position in der Liste auch linear. Unabhängig davon, wie sie hinzugefügt werden, sind die verknüpften Listen eine flexible und dynamische Möglichkeit, die Daten zu speichern, die auf viele verschiedene Arten verwendet werden können.