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>}

參考資料