Heim >häufiges Problem >So implementieren Sie eine einfach verknüpfte Liste in der Go-Sprache

So implementieren Sie eine einfach verknüpfte Liste in der Go-Sprache

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌Original
2023-06-09 11:50:191533Durchsuche

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.

So implementieren Sie eine einfach verknüpfte Liste in der Go-Sprache

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!

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