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

功能说明:

把一个链表存到链表开头


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

查看所有标签

猜你喜欢:

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

产品经理修炼之道

产品经理修炼之道

费杰 / 机械工业出版社华章公司 / 2012-7-30 / 59.00元

本书由资深产品经理、中国最大的产品经理沙龙Pmcaff创始人费杰亲自执笔,微软、腾讯、百度、新浪、搜狐、奇虎、阿里云、Evernote等国内外20余家大型互联网企业资深产品经理和技术专家联袂推荐。用系统化的方法论和丰富的实战案例解读了优秀产品经理所必须修炼的产品规划能力、产品设计能力、产品执行能力,以及思考、分析和解决问题的能力和方法,旨在为互联网产品经理打造核心竞争力提供实践指导。 全书一......一起来看看 《产品经理修炼之道》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码