suchen
Heimhäufiges ProblemSo implementieren Sie eine verknüpfte Liste in Go

Eine verknüpfte Liste ist eine allgemeine Datenstruktur, die aus einer Reihe von Knoten besteht, wobei jeder Knoten Daten und einen Zeiger auf den nächsten Knoten enthält. Verknüpfte Listen können zum Speichern und Bearbeiten großer Datenmengen verwendet werden und bieten eine effiziente Leistung beim Einfügen und Löschen von Elementen. In der Go-Sprache können wir Zeiger und Strukturen verwenden, um verknüpfte Listen zu implementieren.

Zuerst müssen wir eine Knotenstruktur definieren, die Daten und einen Zeiger auf den nächsten Knoten enthält. In der Go-Sprache können Sie Strukturen verwenden, um Knoten zu definieren.

type Node struct {
data int
next *Node
}

Als nächstes können wir eine verknüpfte Listenstruktur definieren, die einen Zeiger auf den Kopfknoten der verknüpften Liste enthält.

type LinkedList struct {
head *Node
}

In der Struktur der verknüpften Liste können wir einige Methoden zum Betreiben der verknüpften Liste definieren. Zuerst müssen wir eine Methode implementieren, um einen Knoten am Ende der verknüpften Liste einzufügen.

func (list *LinkedList) Insert(data int) {
newNode := &Node{data: data, next: nil}
if list.head == nil {
list.head = newNode
} else {
current := list.head
for current.next != nil {
current = current.next
}
current.next = newNode
}
}

Bei dieser Methode erstellen wir zunächst einen neuen Knoten und weisen ihm Daten zu. Dann prüfen wir, ob die verknüpfte Liste leer ist, und wenn ja, legen wir den neuen Knoten als Kopfknoten der verknüpften Liste fest. Andernfalls durchlaufen wir die verknüpfte Liste, bis wir den letzten Knoten finden, und fügen dann den neuen Knoten nach dem letzten Knoten ein.

Als nächstes können wir eine Methode implementieren, um einen Knoten in der verknüpften Liste zu löschen.

func (list *LinkedList) Delete(data int) {
if list.head == nil {
return
}
if list.head.data == data {
list.head = list.head.next
return
}
current := list.head
for current.next != nil {
if current.next.data == data {
current.next = current.next.next
return
}
current = current.next
}
}

Bei dieser Methode prüfen wir zunächst, ob die verknüpfte Liste leer ist, und kehren direkt zurück, wenn sie leer ist. Anschließend prüfen wir, ob der Kopfknoten der verknüpften Liste die zu löschenden Daten enthält, und legen in diesem Fall den Knoten neben dem Kopfknoten als neuen Kopfknoten fest. Andernfalls durchlaufen wir die verknüpfte Liste, bis wir den Knoten finden, der die zu löschenden Daten enthält, und setzen dann den nächsten Knoten dieses Knotens auf den nächsten Knoten des aktuellen Knotens.

Schließlich können wir eine Methode implementieren, um alle Knoten in der verknüpften Liste zu drucken.

func (list *LinkedList) Print() {
current := list.head
for current != nil {
fmt.Println(current.data)
current = current.next
}
}

Bei dieser Methode durchlaufen wir die verknüpfte Liste ausgehend vom Kopfknoten der verknüpften Liste, drucken die Daten jedes Knotens aus und verweisen den aktuellen Knoten auf den nächsten Knoten.

Mit der oben genannten Methode können wir eine verknüpfte Liste erstellen und darin Knoten einfügen, löschen und drucken.

func main() {
list := LinkedList{}
list.Insert(1)
list.Insert(2)
list.Insert(3)
list.Print() // 输出:1 2 3
list.Delete(2)
list.Print() // 输出:1 3
}

Durch den obigen Code können wir sehen, dass die Vorgänge zum Erstellen, Einfügen, Löschen und Drucken der verknüpften Liste einfach implementiert werden können. Dies ist die grundlegende Methode zum Implementieren verknüpfter Listen in der Go-Sprache.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine verknüpfte Liste in Go. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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 vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

SecLists

SecLists

SecLists ist der ultimative Begleiter für Sicherheitstester. Dabei handelt es sich um eine Sammlung verschiedener Arten von Listen, die häufig bei Sicherheitsbewertungen verwendet werden, an einem Ort. SecLists trägt dazu bei, Sicherheitstests effizienter und produktiver zu gestalten, indem es bequem alle Listen bereitstellt, die ein Sicherheitstester benötigen könnte. Zu den Listentypen gehören Benutzernamen, Passwörter, URLs, Fuzzing-Payloads, Muster für vertrauliche Daten, Web-Shells und mehr. Der Tester kann dieses Repository einfach auf einen neuen Testcomputer übertragen und hat dann Zugriff auf alle Arten von Listen, die er benötigt.

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool