


Detaillierte Erläuterung der Verwendung verknüpfter Listendefinitionen von Python-Datenstrukturen und -Algorithmen
Dieser Artikel stellt hauptsächlich die Definition und Verwendung verknüpfter Listen in Python-Datenstrukturen und -Algorithmen vor. Er analysiert die Definitionen, Verwendungsmethoden und zugehörigen Vorsichtsmaßnahmen von einfach verknüpften Listen, zirkulär verknüpften Listen usw. anhand spezifischer Beispiele Bei Bedarf können Sie darauf verweisen.
Die Beispiele in diesem Artikel beschreiben die Definition und Verwendung verknüpfter Listen in Python-Datenstrukturen und -Algorithmen. Teilen Sie es wie folgt mit allen als Referenz:
Dieser Artikel erklärt Ihnen Folgendes:
(1) Verwenden Sie ausgehend von der Definition verknüpfter Listenknoten Klassenmethoden und objektorientierte Ideen zum Erstellen verknüpfter Listen Design
(2) Randbedingungen, die bei der Implementierung von Mitgliedsfunktionen wie Einfügen und Löschen verknüpfter Listenklassen berücksichtigt werden müssen,
prepend (Kopfeinfügung), Pop (Kopflöschung), append (Endeinfügung), pop_last (Endlöschung)
2.1 Einfügen:
Leere verknüpfte Liste
Die Länge der verknüpften Liste beträgt 1
Einfügen bis zum Ende
2.2 Löschen
Leere verknüpfte Liste
Die Länge der verknüpften Liste beträgt 1
Löschen Sie das Endelement
(3) Zahlreiche Variationen von einfach verknüpfter Liste zu einfach verknüpfter Liste:
Einfach verknüpfte Liste mit Endknoten
Zyklische einfach verknüpfte Liste
Doppelt verknüpfte Liste
1. Definition von verknüpften Listenknoten
class LNode: def __init__(self, elem, next_=None): self.elem = elem self.next = next_
2. Implementierung einer einfach verknüpften Liste
Konzentrieren Sie sich auf das Verständnis der Implementierung des Einfügens und Löschens und die Randbedingungen, die berücksichtigt werden müssen:
class LinkedListUnderflow(ValueError): pass class LList: def __init__(self): self._head = None def is_empty(self): return self._head is None def prepend(self, elem): self._head = LNode(elem, self._head) def pop(self): if self._head is None: raise LinkedListUnderflow('in pop') e = self._head.elem self._head = self._head.next return e def append(self, elem): if self._head is None: self._head = LNode(elem) return p = self._head while p.next is not None: p = p.next p.next = LNode(elem) def pop_last(self): if self._head is None: raise LinkedListUnderflow('in pop_last') p = self._head if p.next is None: e = p.elem self._head = None return e while p.next.next is not None: p = p.next e = p.next.elem p.next = None return e
Einfache Zusammenfassung:
(0) Voraussetzung für den Zugriff auf p.next.next ist, dass p.next nicht leer ist. (1) Tail-Einfügung: Wenn die verknüpfte Liste nicht leer ist, muss nur der Tail-Zeiger geändert werden Knoten;
(2) Löschen des Schwanzes. Wenn die Länge der verknüpften Liste nicht leer ist, muss nur der Zeiger des vorletzten Knotens geändert werden.
Einfache Variante der einfach verknüpften Liste: einfach verknüpfte Liste mit Endknoten
class LList1(LList): def __init__(self): LList.__init__(self) self._rear = None ...
Kopfeinfügung, Schwanzeinfügung, Schwanzlöschung
def prepend(self, elem): if self._head is None: self._head = LNode(elem) self._rear = self._head else: self._head = LNode(elem, self._head) def append(self, elem): if self._head is None: self._head = LNode(elem) self._rear = self._head else: self._rear.next = LNode(elem) self._rear = self._rear.next def pop_last(self): if self._head is None: raise LinkedListUnderflow('in pop_last') p = self._head if p.next is None: e = p.elem self._head = None return e while p.next.next is not None: p = p.next e = p.next.elem self._rear = p p.next = None return e
Variation der einfach verknüpften Liste: zyklische einfach verknüpfte Liste
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung verknüpfter Listendefinitionen von Python-Datenstrukturen und -Algorithmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Lösung für Erlaubnisprobleme beim Betrachten der Python -Version in Linux Terminal Wenn Sie versuchen, die Python -Version in Linux Terminal anzuzeigen, geben Sie Python ein ...

Bei der Verwendung von Pythons Pandas -Bibliothek ist das Kopieren von ganzen Spalten zwischen zwei Datenrahmen mit unterschiedlichen Strukturen ein häufiges Problem. Angenommen, wir haben zwei Daten ...

Alternative Verwendung von Python -Parameteranmerkungen in der Python -Programmierung, Parameteranmerkungen sind eine sehr nützliche Funktion, die den Entwicklern helfen kann, Funktionen besser zu verstehen und zu verwenden ...

Wie lösten Python -Skripte an einem bestimmten Ort die Ausgabe in Cursorposition? Beim Schreiben von Python -Skripten ist es üblich, die vorherige Ausgabe an die Cursorposition zu löschen ...

Auswahl der Python-plattformübergreifenden Desktop-Anwendungsentwicklungsbibliothek Viele Python-Entwickler möchten Desktop-Anwendungen entwickeln, die sowohl auf Windows- als auch auf Linux-Systemen ausgeführt werden können ...

Erste Schritte mit Python: Hourglas -Grafikzeichnung und Eingabeüberprüfung In diesem Artikel wird das Problem der Variablendefinition gelöst, das von einem Python -Anfänger im Hourglass -Grafikzeichnungsprogramm auftritt. Code...

Warum kann mein Code nicht die von der API zurückgegebenen Daten erhalten? Bei der Programmierung stoßen wir häufig auf das Problem der Rückgabe von Nullwerten, wenn API aufruft, was nicht nur verwirrend ist ...

Die Untersuchung von Rissverifizierungscodes unter Verwendung von Python in täglichen Netzwerkinteraktionen sind ein häufiger Sicherheitsmechanismus, um eine schädliche Manipulation automatisierter Programme zu verhindern ...
