Heim >Backend-Entwicklung >Golang >Golang-Array zur verknüpften Liste

Golang-Array zur verknüpften Liste

PHPz
PHPzOriginal
2023-05-14 16:18:37600Durchsuche

Golang ist eine effiziente Programmiersprache, deren Datenstrukturen flexibel, vielfältig und einfach zu bedienen sind. In Golang sind Arrays und verknüpfte Listen häufig verwendete Datenstrukturen. Array ist eine lineare Struktur, während verknüpfte Listen eine nichtlineare Struktur sind. In manchen Fällen ist es notwendig, ein Array in eine verknüpfte Liste umzuwandeln, um die Datenverarbeitung zu erleichtern. In diesem Artikel wird erläutert, wie Sie in Golang ein Array in eine verknüpfte Liste konvertieren.

1. Der Unterschied zwischen Arrays und verknüpften Listen

Arrays und verknüpfte Listen sind beide Möglichkeiten, einen Datensatz zu speichern, aber es gibt einen großen Unterschied zwischen ihnen. Hier ist eine kurze Einführung in ihre Unterschiede:

  1. Ein Array ist eine kontinuierliche Datenstruktur fester Größe, die über Indizes zufällig auf Elemente zugreifen kann. Eine verknüpfte Liste ist eine diskontinuierliche Datenstruktur mit dynamischer Größe, in der Elemente durch Zeiger miteinander verknüpft sind.
  2. Arrays belegen kontinuierlichen Speicherplatz und der Zugriff auf Elemente über Indizes ist sehr schnell, während verknüpfte Listen Elemente über Zeiger verknüpfen und auf Elemente außer dem ersten Element nicht zufällig zugegriffen werden kann, sodass die Zugriffsgeschwindigkeit langsam ist.
  3. Die Einfüge- und Löschvorgänge von Arrays sind schwieriger und erfordern das Verschieben anderer Elemente. Die zeitliche Komplexität beträgt O (n). Die verknüpften Listen verknüpfen Elemente über Zeiger ist O(1).

2. Konvertieren Sie ein Array in eine verknüpfte Liste

Um ein Array in eine verknüpfte Liste in Golang zu konvertieren, können Sie die folgenden Schritte ausführen:

  1. Definieren Sie den Knotentyp der verknüpften Liste.

// Definieren Sie den Knotentyp der verknüpften Liste
type ListNode struct {

Val int
Next *ListNode

}

Hier definieren wir einen Knotentyp der verknüpften Liste, der den Wert des Knotens und den Zeiger auf den nächsten Knoten enthält.

  1. Erstellen Sie eine verknüpfte Liste.

//Array in verknüpfte Liste konvertieren
func arrayToList(nums []int) *ListNode {

var head *ListNode
// 遍历数组
for i := len(nums) - 1; i >= 0; i-- {
    // 创建链表节点
    node := &ListNode{nums[i], nil}
    node.Next = head // 将新节点链接到链表头
    head = node      // 将新节点设置为链表头
}
return head

}

Dieser Code konvertiert Array in verknüpfte Liste. Wir definieren zunächst den Kopfknotenkopf einer verknüpften Liste und initialisieren ihn auf Null. Anschließend durchlaufen Sie das Array, erstellen nacheinander jeden Knoten und verknüpfen ihn mit dem Kopf der verknüpften Liste. Geben Sie abschließend den Kopfknoten der verknüpften Liste zurück.

  1. Testen Sie den Code.

func main() {

nums := []int{1, 2, 3, 4, 5}
head := arrayToList(nums)

for head != nil {
    fmt.Print(head.Val, " ")
    head = head.Next
}

}

Wir können den obigen Code verwenden, um das Ergebnis der Konvertierung des Arrays in eine verknüpfte Liste zu testen. Hier definieren wir ein Array [1,2,3,4,5] und konvertieren es in eine verknüpfte Liste. Geben Sie dann durch Durchlaufen der verknüpften Liste den Wert jedes Knotens aus.

3. Zusammenfassung

In Golang kann uns die Konvertierung von Arrays in verknüpfte Listen dabei helfen, Daten bequemer zu verarbeiten. In der obigen Methode konvertieren wir das Array in eine verknüpfte Liste, indem wir den Knotentyp der verknüpften Liste definieren, das Array durchlaufen und jeden Knoten mit dem Kopf der verknüpften Liste verknüpfen. Durch die oben genannten Schritte können wir das Array problemlos in eine verknüpfte Liste umwandeln und den Komfort der verknüpften Liste nutzen, z. B. praktische Einfüge- und Löschvorgänge.

Das obige ist der detaillierte Inhalt vonGolang-Array zur verknüpften Liste. 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
Vorheriger Artikel:Golang Yaml-Daten ändernNächster Artikel:Golang Yaml-Daten ändern