golang 数据结构之单单链表
package main
import "fmt"
//定义一个结构体
//数据结构列表
type LinkNode struct {
Data int64
NextNode *LinkNode //下一个节点的地址
}
//头节点
type ListHead struct {
HeadNode *LinkNode
}
//从头节点开始,一次往下添加
func (ListHead *ListHead) Add(value int64) {
newNode := &LinkNode{Data: value}
node := ListHead.HeadNode
//节点为空,赋值
if node == nil {
ListHead.HeadNode = newNode
} else {
//最后一个的next为nil
for node.NextNode != nil {
node = node.NextNode
}
//相当于ListHead.HeadNode.NexNode = nowNode
node.NextNode = newNode
}
}
//打印链表
func (ListHead *ListHead) ListPrint() {
newNode := ListHead.HeadNode
for newNode != nil {
fmt.Println(newNode.Data)
newNode = newNode.NextNode
}
}
func main() {
node := &ListHead{}
node.Add(4)
node.Add(5)
node.Add(6)
node.ListPrint()
}