简介
本次将使用Golang实现单链表结构,主要实现以下功能:
- 可以存放各种类型的元素(interface{})
- 获取是否为空(无头节点)
- 获取长度
- 获取头结点
- 从头部、尾部、指定位置添加元素
- 删除指定元素
- 删除指定位置元素
- 判断是否包含哪个元素
开始
结构
接下来首先定义单链表的数据结构
首先定义节点结构体
type Node struct {
Data interface{}
Next *Node
}
Data 是一个interface{}类型,可存放任意类型数据。
Next 是Node指针,指向链表的下一个节点
接着定义头结点结构体
type List struct {
headNode *Node
}
这个结构体用于存放头节点,单链表只需要知道头节点,其他的节点由头结点的Next指针查找,顺藤摸瓜
函数
接下来为这个单链表创建各种函数,能够实现各个功能
判断是否为空
func (list *List) IsEmpty() bool {
return list.headNode == nil
}
获取长度
func (list *List) Length() int {
current := list.headNode
count := 0