Golang在container包中提供了三个常用的数据类型,Ring,Heap,List。这一篇文章简单谈谈List
使用import "container/list"来导入这个包,该包定义了List类型,是一个元素可以为任意类型的双链表。
List类型并未导出任何字段,其元素类型为Element。
List表示一个双链表,其零值表示一个可用的链表
使用list.New()函数来生成一个链表
func New() *List
使用Front()/Back()方法来获取链表的第一个/最后一个元素
func(l *List)Front() *Element
func(l *List)Back() *ELement
使用Len()方法来获取链表中元素数量
func(l *List)Len() int
使用InsertAfter()/InsertBefore()方法来在某个元素后/前插入新元素
func(l *List)InsertBefore(v interface{},mark *Element) *Element
func(l *List)InsertAfter(v interface{},mark *Element) *Element
如果mark不是链表l的元素,那么不会修改l
使用PushBack()/PushBackList()将一个元素/链表,插入到当前链表末尾
func(l *List)PushBack(v interface{}) *Element
func(l *List)PushBackList(other *List)
使用PushFront()/PushFrontList()将一个元素/链表,插入到当前链表开头
func(l *List)PushFront(v interface{}) *Element
func(l *List)PushFrontList(other *List)
注意:两个以*List为参数的方法,other和l可以相同
使用Init()方法来删除所有元素
func(l *List) Init() *List
使用Remove()方法来删除特定元素
func(l *List) Remove(e *Element) interface{}
使用MoveToBack()/MoveToFront(),将某个元素移动到链表末尾/开头
func (l *List) MoveToBack(e *Element)
func (l *List) MoveToFront(e *Element)
Element表示列表中的一个元素。定义了两个方法Next/Prev,分别返回下一个/前一个元素或者nil(不存在)
func (e *Element) Next() *Element
func (e *ELement) Prev() *Element
本文详细介绍了Golang容器包中的List数据结构,包括如何导入包、List的基本特性、常用方法及其使用场景。
967

被折叠的 条评论
为什么被折叠?



