Eine einfach verknüpfte Liste ist eine Datenstruktur, die aus einer Reihe von Knoten besteht. Jeder Knoten enthält Daten und einen Zeiger auf den nächsten Knoten. Der Zeiger des letzten Knotens einer einfach verknüpften Liste ist Null und zeigt das Ende der verknüpften Liste an.
In Golang können wir eine Struktur verwenden, um jeden Knoten zu definieren, und einen Zeiger, um die Position des nächsten Knotens darzustellen. Das Folgende ist eine einfache Implementierung einer einfach verknüpften Liste:
package main import "fmt" type Node struct { data int next *Node } type List struct { head *Node } func (l *List) Insert(val int) { newNode := &Node{data: val} if l.head == nil { l.head = newNode } else { last := l.Last() last.next = newNode } } func (l *List) Last() *Node { node := l.head for node.next != nil { node = node.next } return node } func (l *List) Traverse() { node := l.head for node != nil { fmt.Printf("%d ", node.data) node = node.next } fmt.Printf(" ") } func main() { l := List{} for i := 0; i < 10; i++ { l.Insert(i) } l.Traverse() }
In dieser Implementierung definieren wir die Knotenstruktur, die Daten und einen nächsten Zeiger enthält, der auf den nächsten Knoten zeigt. Die Listenstruktur stellt die gesamte verknüpfte Liste dar und enthält einen Kopfzeiger, der auf den ersten Knoten zeigt.
Insert-Methode wird verwendet, um einen Wert in die verknüpfte Liste einzufügen. Wenn die verknüpfte Liste leer ist, legen Sie den neuen Knoten direkt als Kopf fest. Andernfalls suchen Sie den letzten Knoten und zeigen seinen nächsten Zeiger auf den neuen Knoten.
Last-Methode gibt den letzten Knoten der verknüpften Liste zurück. Durchlaufen Sie ausgehend vom Kopf die gesamte verknüpfte Liste, bis der letzte Knoten gefunden wird.
Die Traverse-Methode wird verwendet, um die gesamte verknüpfte Liste zu durchlaufen und alle Elemente in der verknüpften Liste auszugeben.
In der Hauptfunktion erstellen wir eine Listeninstanz, fügen Werte ein und durchlaufen die gesamte verknüpfte Liste, um die Ergebnisse auszugeben.
Die obige Implementierung ist nur ein einfaches Beispiel und kann nach Ihren eigenen Bedürfnissen erweitert und modifiziert werden. Es ist erwähnenswert, dass wir in der tatsächlichen Entwicklung beim Schreiben verknüpfter Listen auf Probleme wie Speicherverluste und die Beurteilung von Zeiger-Nullwerten achten müssen, um die Robustheit und Effizienz des Codes sicherzustellen.
Das obige ist der detaillierte Inhalt vonGolang implementiert eine einfach verknüpfte Liste. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!