首頁 >常見問題 >go語言如何實作單鍊錶

go語言如何實作單鍊錶

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌原創
2023-06-09 11:50:191531瀏覽

go語言實作單鍊錶的方法是:1、建立一個Go範例檔;2、定義鍊錶節點結構體;3、遍歷節點,在鍊錶頭和鍊錶尾新增節點;4、在指定鍊錶位置插入或刪除新節點;5、取得鍊錶指定位置的節點值,實現節點的增刪改查等操作。

go語言如何實作單鍊錶

本教學作業系統: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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn