Heim >häufiges Problem >So implementieren Sie eine einfach verknüpfte Liste in der Go-Sprache
Die Methode zum Implementieren einer einfach verknüpften Liste in der Go-Sprache ist: 1. Erstellen Sie eine Go-Beispieldatei. 2. Definieren Sie die Knotenstruktur der verknüpften Liste. 3. Durchlaufen Sie die Knoten und fügen Sie neue Knoten am Kopf und am Ende der verknüpften Liste hinzu. 4. Fügen Sie den neuen Knoten an der angegebenen Position in der verknüpften Liste ein oder löschen Sie ihn. 5. Rufen Sie den Knotenwert an der angegebenen Position in der verknüpften Liste ab und implementieren Sie Vorgänge wie das Hinzufügen, Löschen, Ändern und Abfragen von Knoten.
Das Betriebssystem dieses Tutorials: Windows 10-System, Go1.20.1-Version, Dell G3-Computer.
Einfach verknüpfte Listen können in der Go-Sprache durch Strukturen und Zeiger implementiert werden.
Die spezifische Methode lautet wie folgt:
1. Definieren Sie die Knotenstruktur der verknüpften Liste
type ListNode struct { Val int Next *ListNode }
2. Implementieren Sie Vorgänge wie das Hinzufügen, Löschen, Ändern und Überprüfen von Knoten
// 遍历节点 func (head *ListNode) Traverse() { for head != nil { fmt.Println(head.Val) head = head.Next } } // 在链表头添加新节点 func (head *ListNode) AddAtHead(val int) *ListNode { node := &ListNode{ Val: val, Next: head, } return node } // 在链表尾添加新节点 func (head *ListNode) AddAtTail(val int) *ListNode { if head == nil { return &ListNode{ Val: val, Next: nil, } } cur := head for cur.Next != nil { cur = cur.Next } cur.Next = &ListNode{ Val: val, Next: nil, } return head } // 在链表指定位置插入新节点 func (head *ListNode) AddAtIndex(index, val int) *ListNode { if index <= 0 { return head.AddAtHead(val) } cur := head for i := 0; i < index-1 && cur != nil; i++ { cur = cur.Next } if cur == nil { return head } node := &ListNode{ Val: val, Next: cur.Next, } cur.Next = node return head } // 删除链表指定位置的节点 func (head *ListNode) DeleteAtIndex(index int) *ListNode { if index < 0 { return head } if index == 0 { return head.Next } cur := head for i := 0; i < index-1 && cur != nil; i++ { cur = cur.Next } if cur == nil || cur.Next == nil { return head } cur.Next = cur.Next.Next return head } // 获取链表指定位置的节点值 func (head *ListNode)
Das obige ist der detaillierte Inhalt vonSo implementieren Sie eine einfach verknüpfte Liste in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!