美文网首页go语言
golang中container/list包

golang中container/list包

作者: ljh123 | 来源:发表于2018-12-07 20:22 被阅读1次

    list包实现了双向链表的功能。

    type Element
        func (e *Element) Next() *Element
        func (e *Element) Prev() *Element
    type List
        func New() *List
        func (l *List) Back() *Element
        func (l *List) Front() *Element
        func (l *List) Init() *List
        func (l *List) InsertAfter(value interface{}, mark *Element) *Element
        func (l *List) InsertBefore(value interface{}, mark *Element) *Element
        func (l *List) Len() int
        func (l *List) MoveToBack(e *Element)
        func (l *List) MoveToFront(e *Element)(ol *List)
        func (l *List) PushBack(value interface{}) *Element
        func (l *List) PushBackList(ol *List)
        func (l *List) PushFront(value interface{}) *Element
        func (l *List) PushFrontList(ol *List)
        func (l *List) Remove(e *Element) interface{}
    

    type Element


    type Element struct {
        next, prev *Element
        list *List
        value interface{}
    }
    

    功能说明:链表中的一个节点
    结构体字段:



    1)next *Element:指向链表中的下一个节点的指针,最后一个节点的下一个节点为nil
    2)next *Element:指向链表中的上一个节点的指针,第一个节点的上一个节点为nil
    3)list *List:指向当前这个节点所属的链表的指针
    4)value interface{}:该节点的内容,可以是任何对象

    type List

    type List struct {
        front, back *Element
        len         int
    }
    

    结构体字段:
    1)front *Element:链表中的第一个节点的指针
    2)back *Element:链表中的最后一个节点的指针
    3)len int:链表中节点的个数

    List结构体的方法
    (1)func New() *List
    返回值:
    *List:空链表的指针
    功能说明:
    创建一个空链表,链表的长度为0,开头和末尾节点都是nil

    (2)func (l *List) Back() *Element
    返回值:
    *Element:链表中最后一个节点的指针,如果链表长度为0,则为nil
    功能说明:获得最后一个节点的指针,如果链表的长度为0,则为nil

    (3)func (l *List) Front() *Element
    返回值:
    *Element:链表中第一个节点的指针,如果链表长度为0,则为nil
    功能说明:获得第一个节点的指针,如果链表长度为0,则为nil

    (4)func (l *List) Init() *List
    返回值:
    *List:初始化或清空后的链表
    功能说明:
    初始化或者清空链表,该方法调用后,链表的长度为0

    (5)func (l *List) InsertAfter(value interface{}, mark *Element) *Element
    参数列表:
    1)value:要插入的数据的内容
    2)mark:链表中的一个节点指针
    返回值:
    *Element:被插入的节点指针,该节点的Value为数据内容
    功能说明:
    把数据value插入到mark节点的后面,并返回被插入的节点。

    (6)func (l *List) InsertBefore(value interface{}, mark *Element) *Element
    参数列表:
    1)value:要插入的数据的内容
    2)mark:链表中的一个节点指针
    返回值:
    *Element:被插入的节点指针,该节点的value为数据内容
    功能说明:
    把数据value插入到mark节点的前面,并返回这个被插入的节点。

    (7)func (l *List) Len() int
    返回值:
    int:链表中节点的个数

    (8)func (l *List) MoveToBack(e *Element)
    参数列表:
    e:链表中的节点
    功能说明:
    把节点e移到链表的末尾

    (9)func (l *List) PushBaackList(ol *List)
    参数列表:
    ol:将被插入到链表l末尾的链表
    功能说明:
    把一个链表存到链表末尾

    (10)func (l *List) PushFront(value interface{}) *Element
    参数列表:
    value:将被存到链表开头的任意对象
    返回值:
    *Element:将存到开头的节点的指针
    功能说明:
    把一个对象存到链表开头,并返回这个节点

    (11)func (l *List) PushFrontList(ol *List)
    参数列表:
    ol:将被插入到链表l开头的链表
    功能说明:
    把一个链表存到链表开头

    相关文章

      网友评论

        本文标题:golang中container/list包

        本文链接:https://www.haomeiwen.com/subject/zetxhqtx.html