go中container中list的使用详解
1. func New() *List{}
初始化一个列表,返回类型为一个list对象 a := list.New() # 在函数内部 a = list.New() 输出: &{{0xc00006a300 0xc00006a300 <nil> <nil>} 0}
2. func (l List) Back() Element{}
返回链表的最后一个元素,返回类型元列表中的元素。 x := a.Back() fmt.Println(strings.Repeat("-----------", 10)) fmt.Println(x) &{0xc00006a300 0xc00006a330 0xc00006a300 b}
3. func (l List) Front() Element{}
返回链表的第一个元素,返回类型元列表中的元素。 x := a.Front() fmt.Println(strings.Repeat("-----------", 10)) fmt.Println(x) &{0xc00006a360 0xc00006a300 0xc00006a300 a}
4. func (l List) Init() List{}
初始化此链表,将元素全部清空 m := a.Init() fmt.Println(m) 输出: &{{0xc00006a300 0xc00006a300 <nil> <nil>} 0}
5. func (l List) InsertAfter(v interface{}, mark Element) *Element{}
InsertAfter在mark之后立即插入一个值为v的新元素e并返回e。如果mark不是l的元素,则不修改列表。商标不得为零。 b := a.PushBack("b") fmt.Println(a.InsertAfter("mm", b)) fmt.Println(a) &{0xc000068300 0xc000068360 0xc000068300 mm} &{{0xc000068300 0xc000068480 <nil> <nil>} 1}
6. func (l List) InsertBefore(v interface{}, mark Element) *Element{}
b := a.PushBack("b") fmt.Println(a.InsertBefore("mm", b)) fmt.Println(a) &{0xc000068300 0xc000068360 0xc000068300 mm} &{{0xc000068300 0xc000068480 <nil> <nil>} 1}
7. func (l *List) Len() int{}
返回链表的长度,返回值类型为××× fmt.Println(a.Len()) 1
8. func (l List) MoveAfter(e, mark Element){}
MoveAfter将标记后的元素e移动到新位置。如果e或mark不是l或e == mark的元素,则不修改列表。元素和标记不得为零。
9. func (l List) MoveBefore(e, mark Element){}
MoveBefore将元素e移动到标记前的新位置。如果e或mark不是l或e == mark的元素,则不修改列表。元素和标记不得为零。
10. func (l List) MoveToBack(e Element){}
MoveToBack将元素e移动到列表l的后面。如果e不是l的元素,则不修改列表。元素不能为零。
11. func (l List) MoveToFront(e Element){}
MoveToFront将元素e移动到列表l的前面。如果e不是l的元素,则不修改列表。元素不能为零。
12. func (l List) PushBack(v interface{}) Element{}
PushBack在列表l的后面插入一个值为v的新元素e并返回e。 a.PushBack("a") b := a.PushBack("b")
13. func (l List) PushBackList(other List){}
PushBackList在列表l的后面插入另一个列表的副本。列表l和其他可以是相同的。他们一定不能为零。
14. func (l List) PushFront(v interface{}) Element{}
PushFront在列表l的前面插入一个值为v的新元素e并返回e。
15. func (l List) PushFrontList(other List){}
PushFrontList在列表l的前面插入另一个列表的副本。列表l和其他可以是相同的。他们一定不能为零。
16. func (l List) Remove(e Element) interface{}{}
如果e是列表l的元素,则删除从l中删除e。它返回元素值e.Value。元素不能为零。
17. func (e Element) Next() Element{}
Next返回下一个list元素或nil
18. func (e Element) Prev() Element{}
Prev返回前一个列表元素或nil。
19 取出链表中元素的值
x := a.Front() fmt.Println(x.Value)
20 链表的遍历
for e := a.Front(); e != nil; e = e.Next() { fmt.Println(e.Value) } 输出: 3 a b mm
对于链表与切片的总结。
链表适合于频繁存取的数据结构中。 切片适合于频繁查询的数据结构中。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。