# container 包
# container/list
# 结构
先看一下结构体由哪些部分组成:
type Element struct { | |
next, prev *Element | |
list *List | |
Value any | |
} | |
type List struct { | |
root Element | |
len int | |
} |
# Element 方法
# 下一个节点
func (e *Element) Next() *Element
# 上一个节点
func (e *Element) Prev() *Element
# List 方法
# 初始化链表
func New() *List
# 链表长度
func (l *List) Len() int
# 链表第一个节点
func (l *List) Front() *Element
# 链表最后一个节点
func (l *List) Back() *Element
# 初始化或清空一个链表
func (l *List) Init() *List
# 指定节点前添加节点
func (l *List) InsertAfter(v any, mark *Element) *Element
若 mark 不属于 l,则链表不修改。
# 指定节点后添加节点
func (l *List) InsertBefore(v any, mark *Element) *Element
若 mark 不属于 l,则链表不修改。
# 链表末尾添加节点
func (l *List) PushBack(v any) *Element
# 链表开头添加节点
func (l *List) PushFront(other *List)
# 删除节点
func (l *List) Remove(e *Element) any
# 把指定节点移动到指定节点之后
func (l *List) MoveAfter(e, mark *Element)
若 e 或 mark 不属于 l,则链表不修改。
# 把指定节点移动到指定节点之前
func (l *List) MoveBefore(e, mark *Element)
若 e 或 mark 不属于 l,则链表不修改。
# 把指定节点移动到链表末尾
func (l *List) MoveToBack(e *Element)
# 把指定节点移动到链表开头
func (l *List) MoveToFront(e *Element)
# 把指定节点移动到链表末尾
func (l *List) MoveToBack(e *Element)
# 把指定节点移动到链表开头
func (l *List) MoveToFront(e *Element)
# 结尾追加链表
func (l *List) PushBackList(other *List)
# 开头加入链表
func (l *List) PushFrontList(other *List)