Linked list 變數: 鏈表
Golang 基礎: Linked list 變數: 鏈表
新增連結變數
type Developer struct {
name string // 姓名
age int // 年齡
NextDeveloper *Developer
}
使用 new 新增
NewDeveloper := new(Developer)
使用 & 新增並給予預設值
var NewDeveloper *Developer = &Developer{
name: "KJ",
age: 17,
}
TestDeveloper := &Developer{
name: "KJ",
age: 17,
}
輪詢鏈結資料
package main
import (
"fmt"
)
type Developer struct {
name string // 姓名
age int // 年齡
NextDeveloper *Developer
}
func main() {
// 第 1 位工程師節點
var FirstDeveloper *Developer = &Developer{
name: "KJ",
age: 17,
}
// 第 2 位工程師節點
var SecondDeveloper *Developer = &Developer{
name: "Kay",
age: 19,
}
// 第 3 位工程師節點
var ThirdDeveloper Developer
ThirdDeveloper.name = `Jay`
ThirdDeveloper.age = 23
// 插入「第 2 位工程師節點位址」到「第 1 位工程師節點」的 NextDeveloper 變數中
FirstDeveloper.NextDeveloper = SecondDeveloper
// 插入「第 3 位工程師節點位址」到「第 2 位工程師節點」的 NextDeveloper 變數中
SecondDeveloper.NextDeveloper = &ThirdDeveloper
// 建立變數,搜尋節點資訊,並指向「第 1 位工程師節點」
SearchDeveloper := FirstDeveloper
// 只要搜尋的節點中的資訊不為空,就會列印節點資訊
for SearchDeveloper != nil {
// fmt.Println(*SearchDeveloper)
fmt.Printf("Developer: %+v\n", SearchDeveloper)
//將欲查看的下個節點 指向 已查看完節點的Next字段
SearchDeveloper = SearchDeveloper.NextDeveloper
}
}
// Developer: &{name:KJ age:17 NextDeveloper:0xc0000b8020}
// Developer: &{name:Kay age:19 NextDeveloper:0xc0000b8040}
// Developer: &{name:Jay age:23 NextDeveloper:<nil>}
參考資料
- Linked List in Go (Golang) - golangprograms.com
- Go by Example: Pointers
- Golang資料結構-day14-鏈表(Linked list) | Taroballz StudyNotes
- list - The Go Programming Language
- #21 鏈結串列 Linked-list | Golang魔法使 - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
- Container 3兄弟-List - iT 邦幫忙::一起幫忙解決難題,拯救 IT 人的一天
- [Golang] 程式設計教學:泛型 (Generics) 相關的議題 | Michael Chen 的技術文件