go語言實作單鍊錶的方法是:1、建立一個Go範例檔;2、定義鍊錶節點結構體;3、遍歷節點,在鍊錶頭和鍊錶尾新增節點;4、在指定鍊錶位置插入或刪除新節點;5、取得鍊錶指定位置的節點值,實現節點的增刪改查等操作。
本教學作業系統:Windows10系統、Go1.20.1版本、Dell G3電腦。
Go 語言中可以透過結構體和指標來實作單鍊錶。
具體的方法如下:
1、定義鍊錶節點結構體
type ListNode struct { Val int Next *ListNode }
2、實作節點的增加、刪、改、查等操作
// 遍历节点 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)
以上是go語言如何實作單鍊錶的詳細內容。更多資訊請關注PHP中文網其他相關文章!