golang中container/list包

栏目: Go · 发布时间: 5年前

内容简介:list包实现了双向链表的功能。type Element功能说明:链表中的一个节点

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开头的链表

功能说明:

把一个链表存到链表开头


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Learn Python 3 the Hard Way

Learn Python 3 the Hard Way

Zed A. Shaw / Addison / 2017-7-7 / USD 30.74

You Will Learn Python 3! Zed Shaw has perfected the world’s best system for learning Python 3. Follow it and you will succeed—just like the millions of beginners Zed has taught to date! You bring t......一起来看看 《Learn Python 3 the Hard Way》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具